
    Cj                     N    S r SSKJr  SSKJrJrJr  SSKJrJr   " S S\5      r	g)z%
Base model class for domain models.
    )datetime)AnyDictOptional)	BaseModel
ConfigDictc                       \ rS rSr% Sr\" SSSS9rSr\\	   \
S'   Sr\\	   \
S	'   \S
\SS 4S j5       rSS\S\\\4   4S jjrSrg)DomainModel   z!Base class for all domain models.T ignore)from_attributesprotected_namespacesextraN
created_at
updated_atrecordreturnc                 ~   Uc  [        S5      e[        U[        5      (       a  U " S0 UD6$ [        US5      (       a0  [	        UR
                  5      (       a  U " S0 UR                  5       D6$ [        US5      (       a0  [	        UR                  5      (       a  U " S0 UR                  5       D6$ U " S0 [        U5      D6$ )z-Create a domain model from a database record.z+Cannot create domain model from None record
model_dumpdictr   )
ValueError
isinstancer   hasattrcallabler   )clsr   s     e/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/litellm/models/base.pyfrom_db_recordDomainModel.from_db_record   s     >JKKfd##== 6<((Xf6G6G-H-H-**,--66""x'<'<'''"T&\""    exclude_unsetc                 "    U R                  SUS9$ )z=Convert domain model to a dictionary for database operations.T)exclude_noner!   )r   )selfr!   s     r   
to_db_dictDomainModel.to_db_dict$   s    DNNr    )F)__name__
__module____qualname____firstlineno____doc__r   model_configr   r   r   __annotations__r   classmethodr   r   boolr   strr%   __static_attributes__r   r    r   r
   r
      s|    +L &*J")%)J")
#C 
#M 
# 
#O Oc3h O Or    r
   N)
r+   r   typingr   r   r   pydanticr   r   r
   r   r    r   <module>r4      s&     & & *O) Or    