o
    "Æi•  ã                   @   s|   d dl mZmZmZ d dlmZmZmZmZ d dl	m	Z	 G dd„ deƒZ
G dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZdS )é    )Ú	BaseModelÚFieldÚ	validator)ÚOptionalÚListÚDictÚAny)Údatetimec                   @   sº   e Zd ZU dZee ed< eed< eed< eed< dZee ed< dZ	ee
e  ed< dZee ed< d	Zeed
< dZeed< dZee ed< dZeeeef  ed< edƒdd„ ƒZdS )ÚFieldConfigSchemaNÚidÚ
field_nameÚ	field_keyÚ
field_typeÚ
field_iconÚfield_optionsÚdefault_valueFÚis_requiredr   Ú
sort_orderÚdescriptionÚvalidation_rulesc                 C   ó    |  dd¡ ¡ stdƒ‚| ¡ S )NÚ_Ú z=field_key must contain only letters, numbers, and underscores©ÚreplaceÚisalnumÚ
ValueErrorÚlower©ÚclsÚv© r!   ú>/lsinfo/ai/hellotax_ai/base_platform/app/schemas/data_model.pyÚvalidate_field_key   ó   z$FieldConfigSchema.validate_field_key)Ú__name__Ú
__module__Ú__qualname__r   r   ÚintÚ__annotations__Ústrr   r   r   r   r   Úboolr   r   r   r   r   r   r#   r!   r!   r!   r"   r
      s   
 r
   c                   @   sr   e Zd ZU eed< eed< dZeed< dZee ed< dZeed< d	Z	eed
< g Z
ee ed< edƒdd„ ƒZdS )ÚDataModelCreateÚnameÚkeyu   ðŸ“ŠÚiconNr   ÚuserÚtypeÚenabledÚstatusÚfieldsc                 C   r   )Nr   r   z7key must contain only letters, numbers, and underscoresr   r   r!   r!   r"   Úvalidate_key#   r$   zDataModelCreate.validate_key)r%   r&   r'   r*   r)   r/   r   r   r1   r3   r4   r   r
   r   r5   r!   r!   r!   r"   r,      s   
 r,   c                   @   sb   e Zd ZU dZee ed< dZee ed< dZee ed< dZ	ee ed< dZ
eee  ed< dS )ÚDataModelUpdateNr-   r/   r   r3   r4   )r%   r&   r'   r-   r   r*   r)   r/   r   r3   r4   r   r
   r!   r!   r!   r"   r6   *   s   
 r6   c                   @   st   e Zd ZU eed< eed< eed< eed< ee ed< eed< eed< ee ed< e	ed	< e	ed
< G dd„ dƒZ
dS )ÚDataModelResponser   r-   r.   r/   r   r1   r3   r4   Ú
created_atÚ
updated_atc                   @   s   e Zd ZdZdS )zDataModelResponse.ConfigTN)r%   r&   r'   Úfrom_attributesr!   r!   r!   r"   ÚConfig>   s    r;   N)r%   r&   r'   r(   r)   r*   r   r   r
   r	   r;   r!   r!   r!   r"   r7   2   s   
 r7   N)Úpydanticr   r   r   Útypingr   r   r   r   r	   r
   r,   r6   r7   r!   r!   r!   r"   Ú<module>   s    