
    ,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	Zd dlm
Z
 d dlmZmZmZmZ  G d de      Zy)	    )annotations)datetime)AnyN)Consts)	AttributeCompletableGithubObjectNotSetOptc                     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dd       Zedd       Zef	 	 	 ddZddZddZeefddZddZy)ProjectCardz
    This class represents Project Cards.

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

    c                    t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _	        t         | _
        y N)r	   	_archived_column_url_content_url_created_at_creator_id_node_id_note_updated_at_urlselfs    2lib/python3.12/site-packages/github/ProjectCard.py_initAttributeszProjectCard._initAttributesJ   sL    *0+1,206?E#)(.%+
06$*	    c                P    | j                  d| j                  j                  i      S )Nid)get__repr__r   valuer   s    r   __repr__zProjectCard.__repr__V   s     txx~~ 677r   c                .    | j                   j                  S r   )r   r!   r   s    r   archivedzProjectCard.archivedY   s    ~~###r   c                .    | j                   j                  S r   )r   r!   r   s    r   
column_urlzProjectCard.column_url]       %%%r   c                .    | j                   j                  S r   )r   r!   r   s    r   content_urlzProjectCard.content_urla   s      &&&r   c                .    | j                   j                  S r   )r   r!   r   s    r   
created_atzProjectCard.created_ate   r'   r   c                .    | j                   j                  S r   )r   r!   r   s    r   creatorzProjectCard.creatori       }}"""r   c                .    | j                   j                  S r   )r   r!   r   s    r   r   zProjectCard.idm   s    xx~~r   c                .    | j                   j                  S r   )r   r!   r   s    r   node_idzProjectCard.node_idq   r.   r   c                .    | j                   j                  S r   )r   r!   r   s    r   notezProjectCard.noteu   s    zzr   c                .    | j                   j                  S r   )r   r!   r   s    r   
updated_atzProjectCard.updated_aty   r'   r   c                .    | j                   j                  S r   )r   r!   r   s    r   urlzProjectCard.url}   s    yyr   c                   |t         u st        |t              sJ |       | j                  y|dk(  r7| j                  j	                  dd      }t
        j                  j                  }nB|t         u s|dk(  r'| j                  }t
        j                  j                  }nt        d|       | j                  j                  d|      \  }} || j                  ||d	      S )
z
        :calls: `GET /repos/{owner}/{repo}/pulls/{number} <https://docs.github.com/en/rest/reference/pulls#get-a-pull-request>`_
        NPullRequestissuespullsIssuezUnknown content type: GETT)	completed)r	   
isinstancestrr)   replacegithubr9   r<   
ValueError
_requesterrequestJsonAndCheck)r   content_typer7   retclassheadersdatas         r   get_contentzProjectCard.get_content   s     v%L#)FTTF# =(""**8W=C))55HV#|w'>""C||))H5l^DEE;;E3G$$GGr   c                   t        |t              sJ |       t        |t        j                  j                        st        |t              sJ |       |t        |t        j                  j                        r|j
                  n|d}| j                  j                  d| j                   d|dt        j                  i      \  }}}|dk(  S )z
        :calls: `POST /projects/columns/cards/{card_id}/moves <https://docs.github.com/en/rest/reference/projects#cards>`_
        )position	column_idPOSTz/movesAcceptinputrH      )r?   r@   rB   ProjectColumnintr   rD   requestJsonr7   r   mediaTypeProjectsPreview)r   rL   columnpost_parametersstatus_s         r   movezProjectCard.move   s     (C(2(2(&&"6"6"D"DETZ\_I`hbhh` &09M9M9[9[&\bh
 22xxj!v>>?	 3 
1 }r   c                    | j                   j                  d| j                  dt        j                  i      \  }}}|dk(  S )z
        :calls: `DELETE /projects/columns/cards/{card_id} <https://docs.github.com/en/rest/reference/projects#cards>`_
        DELETErO   )rH      )rD   rU   r7   r   rV   )r   rY   rZ   s      r   deletezProjectCard.delete   sG     22HHv>>? 3 
1
 }r   c                J   |t         u st        |t              sJ |       |t         u st        |t              sJ |       t        j                  ||d      }| j
                  j                  d| j                  |dt        j                  i      \  }}| j                  |       y)z
        :calls: `PATCH /projects/columns/cards/{card_id} <https://docs.github.com/en/rest/reference/projects#cards>`_
        )r3   r$   PATCHrO   rP   N)r	   r?   r@   boolremove_unset_itemsrD   rE   r7   r   rV   _useAttributes)r   r3   r$   patch_parametersrH   rI   s         r   editzProjectCard.edit   s     v~D#!6<<66!Z$%?II?+1+D+Dd`hEi+j;;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 r2| j                  t        j                  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   r1   r3   r5   r7   )_makeBoolAttributer   _makeStringAttributer   r   _makeDatetimeAttributer   _makeClassAttributerB   	NamedUserr   _makeIntAttributer   r   r   r   r   )r   
attributess     r   rd   zProjectCard._useAttributes   sQ   #!44Z
5KLDN:%#88L9QRDJ& $ 9 9*]:S TD:%#:::l;STD
" 44V5E5E5O5OQ[\eQfgDM:--j.>?DH
" 55j6KLDMZ22:f3EFDJ:%#:::l;STDJ11*U2CDDI r   N)returnNone)ro   r@   )ro   rb   )ro   r   )ro   zgithub.NamedUser.NamedUser)ro   rT   )rF   Opt[str]ro   z:github.PullRequest.PullRequest | github.Issue.Issue | None)rL   r@   rW   z(github.ProjectColumn.ProjectColumn | intro   rb   )r3   rq   r$   z	Opt[bool]ro   rp   )rn   zdict[str, Any]ro   rp   )__name__
__module____qualname____doc__r   r"   propertyr$   r&   r)   r+   r-   r   r1   r3   r5   r7   r	   rJ   r[   r_   rf   rd    r   r   r   r   A   s   
+8 $ $ & & ' ' & & # #   # #     & &   (.H$H	CH,$	 %+& "Er   r   )
__future__r   r   typingr   github.IssuerB   github.NamedUsergithub.ProjectColumngithub.PullRequestr   github.GithubObjectr   r   r	   r
   r   rw   r   r   <module>r      s7   \ #        O OYE) YEr   