Ë
    uPêjD  ã                   ól   — d Z ddlmZmZmZ ddlmZ ddlmZ ddl	m
Z
 erddlmZ  G d„ dee   «      Zy	)
zE
Project repository for database operations on LiteLLM_ProjectTable.
é    )ÚTYPE_CHECKINGÚAnyÚFinal©ÚLiteLLM_ProjectTable)ÚBaseRepository)ÚTableActions)Úmodelsc                   ó2  ‡ — e Zd ZdZeded   fd„«       Zedee   fd„«       Z	dde
de
dedz  fˆ fd	„Zd
e
dedz  fd„Zde
dee   fd„Z	 	 	 	 	 	 	 	 	 	 dde
de
dz  d
e
dz  de
dz  de
dz  de
dz  dee
ef   dz  dee
   dz  dee
ef   dz  dee
ef   dz  de
dz  defd„Z	 	 	 	 	 	 	 	 	 	 dde
de
d
e
dz  de
dz  de
dz  de
dz  dee
ef   dz  dee
   dz  dee
ef   dz  dee
ef   dz  dedz  de
dz  dedz  fd„Zde
dedz  fd„Zde
dededz  fd„Zˆ xZS )ÚProjectRepositoryz+Repository for project database operations.Úreturnz"prisma_models.LiteLLM_ProjectTablec                 óB   — | j                   j                  j                  S ©N)Úprisma_clientÚdbÚlitellm_projecttable©Úselfs    úl/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/repositories/project_repository.pyÚtablezProjectRepository.table   s   € à×!Ñ!×$Ñ$×9Ñ9Ð9ó    c                 ó   — t         S r   r   r   s    r   Úmodel_classzProjectRepository.model_class   s   € ä#Ð#r   Ú
project_idÚid_fieldNc              ƒ   ó@   •K  — t         ‰| �  ||«      ƒ d {  –—† S 7 Œ­wr   )ÚsuperÚ
find_by_id)r   r   r   Ú	__class__s      €r   r   zProjectRepository.find_by_id   s   øè ø€ Ü‘WÑ'¨
°HÓ=×=Ð=Ð=ús   ƒ—˜Úproject_aliasc              ƒ   óX   K  — | j                  d|i¬«      ƒ d{  –—† }|r|d   S dS 7 Œ­w)zFind a project by alias.r    ©ÚwhereNr   ©Ú	find_many)r   r    Úprojectss      r   Úfind_by_aliaszProjectRepository.find_by_alias   s5   è ø€ à $§¡°oÀ}Ð5U Ó V×VˆÙ&ˆx˜‰{Ð0¨DÐ0ð Wús   ‚*š(›*Úteam_idc              ƒ   óF   K  — | j                  d|i¬«      ƒ d{  –—† S 7 Œ­w)z&Find all projects belonging to a team.r(   r"   Nr$   )r   r(   s     r   Úfind_by_team_idz!ProjectRepository.find_by_team_id"   s"   è ø€ à—^‘^¨9°gÐ*>�^Ó?×?Ð?Ð?ús   ‚!š›!Ú
created_byÚdescriptionÚ	budget_idÚmetadatar
   Úmodel_rpm_limitÚmodel_tpm_limitÚobject_permission_idc              ƒ   óÖ   K  — ||dœ}|�||d<   |�||d<   |�||d<   |�||d<   |�||d<   |�||d<   |�||d	<   |	�|	|d
<   |
�|
|d<   |�||d<   | j                  |«      ƒ d{  –—† S 7 Œ­w)zCreate a new project.)r+   Ú
updated_byNr   r    r,   r(   r-   r.   r
   r/   r0   r1   )Úcreate)r   r+   r   r    r,   r(   r-   r.   r
   r/   r0   r1   Údatas                r   Úcreate_projectz ProjectRepository.create_project&   sÍ   è ø€ ð  %Ø$ñ'
ˆð Ð!Ø!+ˆD�ÑØÐ$Ø$1ˆD�Ñ!ØÐ"Ø"-ˆD�ÑØÐØ%ˆD�‰OØÐ Ø )ˆD�ÑØÐØ'ˆD�ÑØÐØ#ˆD�‰NØÐ&Ø&5ˆDÐ"Ñ#ØÐ&Ø&5ˆDÐ"Ñ#ØÐ+Ø+?ˆDÐ'Ñ(à—[‘[ Ó&×&Ð&Ð&ús   ‚A A)Á"A'Á#A)r3   Úblockedc              ƒ   óÚ   K  — d|i}|�||d<   |�||d<   |�||d<   |�||d<   |�||d<   |�||d<   |	�|	|d	<   |
�|
|d
<   |�||d<   |�||d<   | j                  ||d¬«      ƒ d{  –—† S 7 Œ­w)zUpdate a project.r3   Nr    r,   r(   r-   r.   r
   r/   r0   r7   r1   r   ©r   ©Úupdate)r   r   r3   r    r,   r(   r-   r.   r
   r/   r0   r7   r1   r5   s                 r   Úupdate_projectz ProjectRepository.update_projectP   sÍ   è ø€ ð  (4°ZÐ&@ˆØÐ$Ø$1ˆD�Ñ!ØÐ"Ø"-ˆD�ÑØÐØ%ˆD�‰OØÐ Ø )ˆD�ÑØÐØ'ˆD�ÑØÐØ#ˆD�‰NØÐ&Ø&5ˆDÐ"Ñ#ØÐ&Ø&5ˆDÐ"Ñ#ØÐØ%ˆD�‰OØÐ+Ø+?ˆDÐ'Ñ(à—[‘[ ¨T¸L�[ÓI×IÐIÐIús   ‚A"A+Á$A)Á%A+c              ƒ   óD   K  — | j                  |d¬«      ƒ d{  –—† S 7 Œ­w)zDelete a project.r   r9   N)Údelete)r   r   s     r   Údelete_projectz ProjectRepository.delete_projectx   s   è ø€ à—[‘[ °l�[ÓC×CÐCÐCús   ‚ ™š Úspendc              ƒ   óJ   K  — | j                  |d|id¬«      ƒ d{  –—† S 7 Œ­w)zUpdate project spend.r@   r   r9   Nr:   )r   r   r@   s      r   Úupdate_spendzProjectRepository.update_spend|   s&   è ø€ à—[‘[ ¨g°uÐ-=È�[ÓU×UÐUÐUús   ‚#œ!�#)r   )
NNNNNNNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr	   r   Útyper   r   Ústrr   r'   Úlistr*   Údictr   Úintr6   Úboolr<   r?   ÚfloatrB   Ú__classcell__)r   s   @r   r   r      sÃ  ø„ Ù5àð:�|Ð$HÑIò :ó ð:ð ð$˜TÐ"6Ñ7ò $ó ð$ñ>¨3ð >¸#ð >ÐQeÐhlÑQlõ >ð1°ð 1Ð9MÐPTÑ9Tó 1ð
@¨Sð @°TÐ:NÑ5Oó @ð "&Ø$(Ø"&Ø"Ø $Ø*.Ø#'Ø15Ø15Ø+/ñ('àð('ð ˜$‘Jð('ð ˜T‘zð	('ð
 ˜4‘Zð('ð �t‘ð('ð ˜‘:ð('ð �s˜C�x‘. 4Ñ'ð('ð �S‘	˜DÑ ð('ð ˜c 3˜h™¨$Ñ.ð('ð ˜c 3˜h™¨$Ñ.ð('ð " D™jð('ð 
ó('ð\ %)Ø"&Ø"Ø $Ø*.Ø#'Ø15Ø15Ø#Ø+/ñ&Jàð&Jð ð&Jð ˜T‘zð	&Jð
 ˜4‘Zð&Jð �t‘ð&Jð ˜‘:ð&Jð �s˜C�x‘. 4Ñ'ð&Jð �S‘	˜DÑ ð&Jð ˜c 3˜h™¨$Ñ.ð&Jð ˜c 3˜h™¨$Ñ.ð&Jð ˜‘ð&Jð " D™jð&Jð 
 Ñ	$ó&JðPD¨sð DÐ7KÈdÑ7Ró DðV¨Sð V¸ð VÐCWÐZ^ÑC^÷ Vr   r   N)rF   Útypingr   r   r   Úlitellm.models.projectr   Ú$litellm.repositories.base_repositoryr   Ú%litellm.repositories.prisma_protocolsr	   Úprismar
   Úprisma_modelsr   © r   r   ú<module>rW      s7   ðñ÷ -Ñ ,å 7Ý ?Ý >áÝ.ôoV˜Ð';Ñ<õ oVr   