
    xHi                       d Z ddlmZ ddlmZmZmZ  G d de          Z G d de          Z G d d	e          Z	 G d
 de          Z
 G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d  d!e          Z G d" d#e          Z G d$ d%e          Z G d& d'e          Z G d( d)e          Z G d* d+e          Z G d, d-e          Z G d. d/e          Z G d0 d1e          Zd2S )3u@  
Nom du fichier : projects.py
Chemin : /var/www/html/gitlab-bridge/app/schemas/projects.py
Description : Schémas Pydantic liés aux projets GitLab pour le bridge OpenWebUI.
              Ce fichier contient les schémas de résumé, création, pré-vérification
              et orchestration conversationnelle de création de projet.
Options éventuelles :
    - Aucun
Exemples d'utilisation :
    - Import dans app/api/v1/projects.py
Prérequis :
    - Python 3.11+
    - Pydantic v2
Auteur : Sylvain SCATTOLINI
Date de création / modification : 2026-03-26
Version : 1.7
    )annotations)	BaseModel
ConfigDictFieldc                  F    e Zd ZU  ed          Zded<   ded<   ded<   dS )	ProjectInfoforbidextraintidstrnamepath_with_namespaceN__name__
__module____qualname__r   model_config__annotations__     3/var/www/html/gitlab-bridge/app/schemas/projects.pyr   r      sB         :H---LGGGIIIr   r   c                  F    e Zd ZU  ed          Zded<   ded<   ded<   dS )	SummaryPayloadr	   r
   r   open_issuesclosed_issues_periodr   markdownNr   r   r   r   r   r   !   sC         :H---LMMMMMr   r   c                  J    e Zd ZU  ed          ZdZded<   ded<   ded	<   d
S )ProjectSummaryResponser	   r
   Tboolsuccessr   projectr   summaryNr   r   r   r   r   r"   r   r   r   r   r    r    )   sM         :H---LGr   r    c                  P    e Zd ZU  ed          Zded<   ded<   ded<   ded<   d	S )
ProjectCreatePayloadr	   r
   r   r   r   r   r   web_urlNr   r   r   r   r'   r'   1   sI         :H---LGGGIIILLLLLr   r'   c                  @    e Zd ZU  ed          ZdZded<   ded<   dS )	ProjectCreateResponser	   r
   Tr!   r"   r'   r#   Nr%   r   r   r   r*   r*   :   sA         :H---LG!!!!!!r   r*   c                     e Zd ZU  ed          Z eddd          Zded<    eddd          Zded	<    eddd          Z	ded
<    edd          Z
ded<    edd          Zded<    ed          Zded<   dS )ProjectCreateRequestr	   r
   .      
min_length
max_lengthr   r   pathnamespace_path   defaultr1   descriptionprivate^(private|internal|public)$r7   pattern
visibilityTr7   r!   initialize_with_readmeN)r   r   r   r   r   r   r   r   r2   r3   r8   r=   r?   r   r   r   r,   r,   A   s         :H---LcaC888D8888caC888D8888%cBBBNBBBBuRD999K9999eI7TUUUJUUUU#(5#6#6#6666666r   r,   c                  Z    e Zd ZU  ed          Zded<   ded<   ded<   ded<   ded	<   d
S )SimilarProjectr	   r
   r   r   r   r   r   r(   scoreNr   r   r   r   rA   rA   L   sR         :H---LGGGIIILLLJJJJJr   rA   c                  P    e Zd ZU  ed          Zded<   ded<   ded<   ded<   d	S )
CandidateGroupr	   r
   r   r   r   r   	full_pathrB   Nr   r   r   r   rD   rD   V   sF         :H---LGGGIIINNNJJJJJr   rD   c                      e Zd ZU  ed          Z eddd          Zded<    eddd          Zded	<    ed
d          Z	ded<    eddd          Z
ded<   dS )ProjectCheckCreateRequestr	   r
   .r-   r.   r/   r   project_nametarget_group_hintr4   r6   	root_hint
   2   r7   geler   limitN)r   r   r   r   r   r   rH   r   rI   rJ   rP   r   r   r   rG   rG   _   s         :H---LcaC@@@L@@@@"U31EEEEEEEU2#666I6666raB///E//////r   rG   c                      e Zd ZU  ed          ZdZded<   ded<   ded<   d	Zd
ed<    ee	          Z
ded<    ee	          Zded<   ded<   d	S )ProjectCheckCreateResponser	   r
   Tr!   r"   r   statussuggested_project_pathN
str | Noneresolved_groupdefault_factorylist[CandidateGroup]candidate_groupslist[SimilarProject]similar_projectsmessage)r   r   r   r   r   r"   r   rV   r   listrZ   r\   r   r   r   rR   rR   h   s         :H---LGKKK!%N%%%%-2U4-H-H-HHHHH-2U4-H-H-HHHHHLLLLLr   rR   c                  n   e Zd ZU  ed          Z eddd          Zded<    eddd          Zded	<    ed
d          Z	ded<    ed
d          Z
ded<    edd          Zded<    ed          Zded<    ed          Zded<    ed
d          Zded<    eddd          Zded<   dS ) ProjectAssistantCreateRequestr	   r
   .r-   r.   r/   r   rH   rI   r4   r6   rJ   r5   r8   r9   r:   r;   r=   Tr>   r!   r?   FconfirmrV   rK   rL   rM   r   rP   N)r   r   r   r   r   r   rH   r   rI   rJ   r8   r=   r?   ra   rV   rP   r   r   r   r`   r`   t   sI        :H---LcaC@@@L@@@@"U31EEEEEEEU2#666I6666uRD999K9999eI7TUUUJUUUU#(5#6#6#66666E%(((G((((%s;;;N;;;;raB///E//////r   r`   c                      e Zd ZU  ed          ZdZded<   ded<   ded<   d	Zd
ed<   d	Zded<   d	Z	ded<    e
e          Zded<    e
e          Zded<   d	S )ProjectAssistantCreateResponser	   r
   Tr!   r"   r   rS   r]   NzProjectCreatePayload | Noner#   rU   rT   rV   rW   rY   rZ   r[   r\   )r   r   r   r   r   r"   r   r#   rT   rV   r   r^   rZ   r\   r   r   r   rc   rc      s         :H---LGKKKLLL+/G////)-----!%N%%%%-2U4-H-H-HHHHH-2U4-H-H-HHHHHHHr   rc   c                  T    e Zd ZU  ed          ZdZded<   ded<   ded	<   ded
<   dS )ProjectTasksResponser	   r
   Tr!   r"   r   r#   	list[str]r   closed_issuesNr%   r   r   r   re   re      sY         :H---LGr   re   c                  ^    e Zd ZU  ed          ZdZded<   ded<   ded	<   ded
<   ded<   dS )ProjectProgressResponser	   r
   Tr!   r"   r   r#   r   totalclosedprogress_percentNr%   r   r   r   ri   ri      s_         :H---LGJJJKKKr   ri   c                  @    e Zd ZU  ed          Zded<   dZded<   dS )ProjectTasksRequestr	   r
   r   project_hintr4   rJ   Nr   r   r   r   r   r   rJ   r   r   r   rn   rn      A         :H---LIr   rn   c                  @    e Zd ZU  ed          Zded<   dZded<   dS )ProjectProgressRequestr	   r
   r   ro   r4   rJ   Nrp   r   r   r   rs   rs      rq   r   rs   c                      e Zd ZU  ed          Z eddd          Zded<    ed	d
          Zded<    ed          Z	ded<    ed	d
          Z
ded<   dS )ProjectAssistantTasksRequestr	   r
   .r-   r.   r/   r   ro   r4   r6   rJ   Fr>   r!   ra   resolved_project_pathNr   r   r   r   r   r   ro   r   rJ   ra   rv   r   r   r   ru   ru               :H---LcaC@@@L@@@@U2#666I6666E%(((G((((!&rc!B!B!BBBBBBBr   ru   c                      e Zd ZU  ed          ZdZded<   ded<   ded<   d	Zd
ed<    ee	          Z
ded<    ee	          Zded<    ee	          Zded<   d	S )ProjectAssistantTasksResponser	   r
   Tr!   r"   r   rS   r]   NProjectInfo | Noner#   rW   rf   r   rg   r[   candidate_projects)r   r   r   r   r   r"   r   r#   r   r^   r   rg   r|   r   r   r   rz   rz      s         :H---LGKKKLLL"&G&&&&"U4888K8888$uT:::M::::/4uT/J/J/JJJJJJJr   rz   c                      e Zd ZU  ed          Z eddd          Zded<    ed	d
          Zded<    ed          Z	ded<    ed	d
          Z
ded<   dS )ProjectAssistantProgressRequestr	   r
   .r-   r.   r/   r   ro   r4   r6   rJ   Fr>   r!   ra   rv   Nrw   r   r   r   r~   r~      rx   r   r~   c                      e Zd ZU  ed          ZdZded<   ded<   ded<   d	Zd
ed<   dZded<   dZ	ded<   dZ
ded<    ee          Zded<   d	S ) ProjectAssistantProgressResponser	   r
   Tr!   r"   r   rS   r]   Nr{   r#   r   r   rj   rk   rl   rW   r[   r|   )r   r   r   r   r   r"   r   r#   rj   rk   rl   r   r^   r|   r   r   r   r   r      s         :H---LGKKKLLL"&G&&&&ENNNNFOOOO/4uT/J/J/JJJJJJJr   r   c                      e Zd ZU  ed          Z eddd          Zded<    ed	d
          Zded<    ed          Z	ded<    ed	d
          Z
ded<    eddd          Zded<   dS )ProjectAssistantListRequestr	   r
   .r-   r.   r/   r   
group_hintr4   r6   rJ   Fr>   r!   ra   resolved_group_pathrL      rM   r   rP   N)r   r   r   r   r   r   r   r   rJ   ra   r   rP   r   r   r   r   r      s         :H---LeCA#>>>J>>>>U2#666I6666E%(((G(((($uRC@@@@@@@raC000E000000r   r   c                  h    e Zd ZU  ed          Zded<   ded<   ded<   ded<   ded	<   d
Zded<   dS )ProjectListItemr	   r
   r   r   r   r   r   r(   r=   r   open_issues_countN)r   r   r   r   r   r   r   r   r   r   r   r      sf         :H---LGGGIIILLLOOOr   r   c                      e Zd ZU  ed          ZdZded<   ded<   ded<   d	Zd
ed<    ee	          Z
ded<    ee	          Zded<   d	S )ProjectAssistantListResponser	   r
   Tr!   r"   r   rS   r]   NrU   rV   rW   rY   rZ   zlist[ProjectListItem]projects)r   r   r   r   r   r"   r   rV   r   r^   rZ   r   r   r   r   r   r      s         :H---LGKKKLLL!%N%%%%-2U4-H-H-HHHHH&+eD&A&A&AHAAAAAAr   r   N)__doc__
__future__r   pydanticr   r   r   r   r   r    r'   r*   r,   rA   rD   rG   rR   r`   rc   re   ri   rn   rs   ru   rz   r~   r   r   r   r   r   r   r   <module>r      sC   $ # " " " " " 1 1 1 1 1 1 1 1 1 1    )       Y       Y       9   " " " " "I " " "7 7 7 7 79 7 7 7    Y       Y   0 0 0 0 0	 0 0 0	 	 	 	 	 	 	 	0 0 0 0 0I 0 0 0
I 
I 
I 
I 
IY 
I 
I 
I    9       i       )       Y   C C C C C9 C C C	K 	K 	K 	K 	KI 	K 	K 	KC C C C Ci C C C
K 
K 
K 
K 
Ky 
K 
K 
K1 1 1 1 1) 1 1 1    i   B B B B B9 B B B B Br   