3
1Yj                 @   s(  U d Z ddlZddlZddlZddlmZmZ ddlmZm	Z	 ej
dZG dd deZG dd	 d	eZG d
d deZyTejd ejjejjeZeed dddZejeZW dQ R X ef eZW n0 ek
r Z zede  W Y ddZ[X nX e	e dddZeed Ze	e dS )z
 * @author Xiaobo Sun, Daliang Chen
 * created  on 29.11.2025
 * @copyright (C) 2025 Sogood International GmbH - all rights reserved
 * @licence
 * Unauthorized copying of this file, via any medium is strictly prohibited
 * Proprietary and confidential
    N)	BaseModelField)ListOptionaldjangoc               @   s^   e Zd ZU eeeddZe	eddZ
e	
ee	e	eddZe	e	G dd dZdS )GegenkontoEntryZfromCountry)aliasZ	toCountryzbu-keyc               @   s   e Zd ZdZdS )zGegenkontoEntry.ConfigTN)__name__
__module____qualname__populate_by_name r   r   '/data/git/entellipy_wy/datev/setting.pyConfig   s   r   N)r	   r
   r   intidboolenabledr   from_countrystr
to_country
isMerchantkontomkontobuKeytaxr   r   r   r   r   r      s   
r   c               @   sD   e Zd ZU eeddZeeddZee	
eG dd dZdS )CompanyEntryZBeraternummer)r   ZMandantennummerc               @   s   e Zd ZdZdS )zCompanyEntry.ConfigTN)r	   r
   r   r   r   r   r   r   r   )   s   r   N)r	   r
   r   r   r   r   beraternummerr   mandantennummerr   r   namer   r   r   r   r   r   "   s   
r   c               @   s   e Zd ZU ee ee dS )
ConfigDataN)r	   r
   r   r   r   
gegenkontor   companyr   r   r   r   r    -   s   
r    zloading datev configz/settings.jsonrzutf-8)encodingzFailed to load config: )returnc             C   s   t jd tjj| s(td|   d S y2t| ddd}tj|}W d Q R X t	f |}|S  t
k
r } ztd|  d S d }~X nX d S )Nzdatev load_configzFile not found: r#   zutf-8)r$   zFailed to load config: )loggerinfoospathexistsprintopenjsonloadr    	Exception)	file_pathf	data_dictZconfig_instanceer   r   r   load_config=   s    

r4   )__doc__r-   r(   loggingZpydanticr   r   typingr   r   	getLoggerr&   r   r   r    r'   r)   dirnameabspath__file__source_pathr,   r1   r.   r2   Zconfig_objectr/   r3   r+   r4   CONFIGr   r   r   r   <module>   s&   

 