
    8j                         d dl m Z  d dlmZ d dlmZmZ  G d de          Z G d de          Z G d d	e          Z G d
 de          Z	dS )    )datetime)Any)	BaseModelfield_validatorc                      e Zd ZU dZedz  ed<   eed<   eed<   eed<   dZedz  ed<   dZe	e         dz  ed<   dZ
edz  ed<   d	Zeed
<   dZeed<   dZedz  ed<   dZeeef         dz  ed<    ed          e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                     |                     dd                                          st          d          |                                S )N_ z=field_key must contain only letters, numbers, and underscoresreplaceisalnum
ValueErrorlowerclsvs     >/lsinfo/ai/hellotax_ai/base_platform/app/schemas/data_model.pyvalidate_field_keyz$FieldConfigSchema.validate_field_key   sD     yyb!!))++ 	^\]]]wwyy    )__name__
__module____qualname__r	   int__annotations__strr   r   listr   r   boolr   r   r   dictr   r   classmethodr     r!   r   r   r      s        Bd
OOONNNOOO!Jd
!!!&*M49t#*** $M3:$$$KJ"Kt""".2d38nt+222_[!!  [ "!  r!   r   c                       e Zd ZU eed<   eed<   dZeed<   dZedz  ed<   dZeed<   d	Zeed
<   g Z	e
e         ed<    ed          ed                         ZdS )DataModelCreatenamekeyu   📊iconNr   usertypeenabledstatusfieldsc                     |                     dd                                          st          d          |                                S )Nr   r   z7key must contain only letters, numbers, and underscoresr   r   s     r   validate_keyzDataModelCreate.validate_key%   sD     yyb!!))++ 	XVWWWwwyyr!   )r"   r#   r$   r'   r&   r1   r   r3   r5   r6   r(   r   r   r+   r8   r,   r!   r   r.   r.      s         
III	HHHD#"Kt"""D#FC&(FD"#(((_U  [   r!   r.   c                       e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZ	e
e         dz  ed<   dS )DataModelUpdateNr/   r1   r   r5   r6   )r"   r#   r$   r/   r'   r&   r1   r   r5   r6   r(   r   r,   r!   r   r:   r:   -   s}         D#*D#*"Kt"""FC$J-1FD"#d*11111r!   r:   c                       e Zd ZU eed<   eed<   eed<   eed<   edz  ed<   eed<   eed<   ee         ed	<   eed
<   eed<    G d d          Z	dS )DataModelResponser	   r/   r0   r1   Nr   r3   r5   r6   
created_at
updated_atc                       e Zd ZdZdS )DataModelResponse.ConfigTN)r"   r#   r$   from_attributesr,   r!   r   Configr@   A   s        r!   rB   )
r"   r#   r$   r%   r&   r'   r(   r   r   rB   r,   r!   r   r<   r<   5   s         GGG
III	HHH
IIIt
IIIKKK"####         r!   r<   N)
r   typingr   pydanticr   r   r   r.   r:   r<   r,   r!   r   <module>rE      s                / / / / / / / /    	   *    i   "2 2 2 2 2i 2 2 2    	     r!   