
    ,Of&                        d dl mZ d dlmZ d dlmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZmZ d dlmZ ddlmZ  G d	 d
e
      Zy)    )annotations)datetime)AnyN)	AttributeCompletableGithubObjectNotSetOpt)PaginatedList   )Constsc                      e Zd ZdZddZddZedd       Zedd       Zedd       Z	edd       Z
edd       Zedd	       Zedd
       Zedd       ZefddZeeef	 	 	 	 	 	 	 ddZddZddZddZddZy)ProjectColumnz
    This class represents Project Columns.

    The reference can be found here
    https://docs.github.com/en/rest/reference/projects#columns

    c                    t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        y N)	r   
_cards_url_created_at_id_name_node_id_project_url_updated_at_urlselfs    4lib/python3.12/site-packages/github/ProjectColumn.py_initAttributeszProjectColumn._initAttributesH   s=    *006#)%+
(.,206$*	    c                P    | j                  d| j                  j                  i      S )Nname)get__repr__r   valuer   s    r   __repr__zProjectColumn.__repr__R   s"    )9)9 :;;r   c                .    | j                   j                  S r   )r   r!   r   s    r   	cards_urlzProjectColumn.cards_urlU   s    $$$r   c                .    | j                   j                  S r   )r   r!   r   s    r   
created_atzProjectColumn.created_atY       %%%r   c                .    | j                   j                  S r   )r   r!   r   s    r   idzProjectColumn.id]   s    xx~~r   c                .    | j                   j                  S r   )r   r!   r   s    r   r   zProjectColumn.namea   s    zzr   c                .    | j                   j                  S r   )r   r!   r   s    r   node_idzProjectColumn.node_ide   s    }}"""r   c                .    | j                   j                  S r   )r   r!   r   s    r   project_urlzProjectColumn.project_urli   s      &&&r   c                .    | j                   j                  S r   )r   r!   r   s    r   
updated_atzProjectColumn.updated_atm   r'   r   c                .    | j                   j                  S r   )r   r!   r   s    r   urlzProjectColumn.urlq   s    yyr   c                
   |t         u st        |t              sJ |       t               }|t         ur||d<   t	        t
        j                  j                  | j                  | j                   d|dt        j                  i      S )z
        :calls: `GET /projects/columns/{column_id}/cards <https://docs.github.com/en/rest/reference/projects#list-project-cards>`_
        archived_state/cardsAccept)r   
isinstancestrdictr
   githubProjectCard
_requesterr2   r   mediaTypeProjectsPreview)r   r4   url_parameterss      r   	get_cardszProjectColumn.get_cardsu   s|     ':nc+JZNZJ'/=N+,**OOxxjv667
 	
r   c                   t        |t              r#|t        u sJ |       |t        u sJ |       d|i}nB|t        u sJ |       t        |t              sJ |       t        |t              sJ |       ||d}dt        j
                  i}| j                  j                  d| j                   d||      \  }}t        j                  j                  | j                  ||d      S )	z
        :calls: `POST /projects/columns/{column_id}/cards <https://docs.github.com/en/rest/reference/projects#create-a-project-card>`_
        note)
content_idcontent_typer6   POSTr5   )headersinputT)	completed)r7   r8   r   intr   r=   r<   requestJsonAndCheckr2   r:   r;   )r   rA   rB   rC   post_parametersimport_headerrE   datas           r   create_cardzProjectColumn.create_card   s     dC '33'6)7<7)/5tnO6>'4'>j#.:
:.lC0>,>0-7VO!6#B#BC;;txxj'o < 
 !!--doowX\-]]r   c                    t        |t              sJ |       d|i}| j                  j                  d| j                   d|dt
        j                  i      \  }}}|dk(  S )z
        :calls: `POST POST /projects/columns/{column_id}/moves <https://docs.github.com/en/rest/reference/projects#move-a-project-column>`_
        positionrD   z/movesr6   rF   rE      )r7   r8   r<   requestJsonr2   r   r=   )r   rO   rJ   status_s        r   movezProjectColumn.move   sp     (C(2(2(%x022xxj!v>>?	 3 
1 }r   c                    | j                   j                  d| j                  dt        j                  i      \  }}}|dk(  S )z
        :calls: `DELETE /projects/columns/{column_id} <https://docs.github.com/en/rest/reference/projects#delete-a-project-column>`_
        DELETEr6   )rE      )r<   rR   r2   r   r=   )r   rS   rT   s      r   deletezProjectColumn.delete   sG     22HHv>>? 3 
1
 }r   c                    t        |t              sJ |       d|i}| j                  j                  d| j                  |dt
        j                  i      \  }}| j                  |       y)z
        :calls: `PATCH /projects/columns/{column_id} <https://docs.github.com/en/rest/reference/projects#update-an-existing-project-column>`_
        r   PATCHr6   rP   N)r7   r8   r<   rI   r2   r   r=   _useAttributes)r   r   patch_parametersrE   rL   s        r   editzProjectColumn.edit   sk     $$*d*$"D>;;HH"v>>?	 < 
 	D!r   c                   d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r| j	                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _	        d|v r| j                  |d         | _
        y y )	Nr$   r&   r)   r   r,   r.   r0   r2   )_makeStringAttributer   _makeDatetimeAttributer   _makeIntAttributer   r   r   r   r   r   )r   
attributess     r   r\   zProjectColumn._useAttributes   s   *$"77
;8OPDO:%#:::l;STD:--j.>?DHZ22:f3EFDJ
" 55j6KLDMJ& $ 9 9*]:S TD:%#:::l;STDJ11*U2CDDI r   N)returnNone)rd   r8   )rd   r   )rd   rH   )r4   Opt[str]rd   z-PaginatedList[github.ProjectCard.ProjectCard])rA   rf   rB   zOpt[int]rC   rf   rd   zgithub.ProjectCard.ProjectCard)rO   r8   rd   bool)rd   rg   )r   r8   rd   re   )rc   zdict[str, Any]rd   re   )__name__
__module____qualname____doc__r   r"   propertyr$   r&   r)   r   r,   r.   r0   r2   r   r?   rM   rU   rY   r^   r\    r   r   r   r   ?   s   +< % % & &       # # ' ' & &   4: 
(  %!'	^^ ^ 	^
 
(^2	" Er   r   )
__future__r   r   typingr   github.GithubObjectr:   github.Projectgithub.ProjectCardr   r   r   r	   github.PaginatedListr
    r   r   rm   r   r   <module>ru      s7   b #      O O . ZE+ ZEr   