a
    g                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d d	lmZmZmZmZmZmZ d d
lmZmZmZmZmZ erd dlmZ d dl m!Z! d dl"m#Z# G dd ded ed ed Z$dS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)RequestOptions)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)BalanceTransaction)File)Transactionc                   @   s  e Zd ZU dZdZeed  ed< G dd deZ	G dd deZ
G dd	 d	eZG d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!eZG d"d# d#eZG d$d% d%eZG d&d' d'eZG d(d) d)eZG d*d+ d+eZG d,d- d-eZG d.d/ d/eZ G d0d1 d1eZ!G d2d3 d3eZ"G d4d5 d5eZ#G d6d7 d7eZ$G d8d9 d9eZ%e&ed:< e'e(d;  ed<< e&ed=< e)ed>< e	ed?< e)ed@< e*edA< e'edB  edC< e+e)e)f edD< ed edE< edF edG< e,dH edI< e'e
 edJ< e-e.dK d dLdMdNZ/e-e.dK d dLdOdPZ0e-e.dQ e1d  dLdRdSZ2e-e.dQ e1d  dLdTdUZ3e-e)e.dV d dWdXdYZ4e-e)e.dV d dWdZd[Z5e-e)e.d\ d dWd]d^Z6e-e)e.d\ d dWd_d`Z7e-e)e.da d dbdcddZ8e9e:e)e.da d dbdedfZ;e9e.da d dLdgdfZ;e<dhe.da d dLdidfZ;e-e)e.da d dbdjdkZ=e9e:e)e.da d dbdldmZ>e9e.da d dLdndmZ>e<doe.da d dLdpdmZ>e	e
dqZ?drS )sDisputea  
    As a [card issuer](https://stripe.com/docs/issuing), you can dispute transactions that the cardholder does not recognize, suspects to be fraudulent, or has other issues with.

    Related guide: [Issuing disputes](https://stripe.com/docs/issuing/purchases/disputes)
    zissuing.disputeOBJECT_NAMEc                	   @   s  e Zd ZU G dd deZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZee ed< ee ed< ee ed< ee ed< ee ed< ee	 ed< ee
 ed< ed ed< ee ed< eeeeee	e
edZdS )zDispute.Evidencec                   @   s   e Zd ZU eed  ed< ee ed< ee ed< ee ed< ee ed< ee ed< ee ed< ee	d	  ed
< ee	d  ed< ee ed< dS )zDispute.Evidence.Canceledr   additional_documentationcanceled_atcancellation_policy_providedcancellation_reasonexpected_atexplanationproduct_descriptionZmerchandiseZserviceproduct_typeZmerchant_rejectedZ
successfulreturn_statusreturned_atN)
__name__
__module____qualname__r   r   __annotations__intboolstrr    r.   r.   e/var/www/staging/api/virtual_environments/venv/lib/python3.9/site-packages/stripe/issuing/_dispute.pyCanceled(   s   
r0   c                   @   sf   e Zd ZU eed  ed< eed  ed< eed  ed< eed  ed< ee ed< ee ed< dS )	zDispute.Evidence.Duplicater   r   card_statementcash_receiptcheck_imager    original_transactionNr'   r(   r)   r   r   r*   r-   r.   r.   r.   r/   	DuplicateR   s   
r6   c                   @   s*   e Zd ZU eed  ed< ee ed< dS )zDispute.Evidence.Fraudulentr   r   r    Nr5   r.   r.   r.   r/   
Fraudulentl   s   
r7   c                   @   s^   e Zd ZU eed  ed< ee ed< ee ed< ee ed< eed  ed< ee ed< d	S )
z*Dispute.Evidence.MerchandiseNotAsDescribedr   r   r    received_atreturn_descriptionr$   r%   r&   N)	r'   r(   r)   r   r   r*   r-   r+   r   r.   r.   r.   r/   MerchandiseNotAsDescribedv   s   
r:   c                   @   s*   e Zd ZU eed  ed< ee ed< dS )z%Dispute.Evidence.NoValidAuthorizationr   r   r    Nr5   r.   r.   r.   r/   NoValidAuthorization   s   
r;   c                   @   sR   e Zd ZU eed  ed< ee ed< ee ed< ee ed< eed  ed< dS )	zDispute.Evidence.NotReceivedr   r   r   r    r!   r"   r#   N)	r'   r(   r)   r   r   r*   r+   r-   r   r.   r.   r.   r/   NotReceived   s   
r<   c                   @   sF   e Zd ZU eed  ed< ee ed< ee ed< eed  ed< dS )zDispute.Evidence.Otherr   r   r    r!   r"   r#   N)r'   r(   r)   r   r   r*   r-   r   r.   r.   r.   r/   Other   s
   
r=   c                   @   sN   e Zd ZU eed  ed< ee ed< ee ed< ee ed< ee ed< dS )z&Dispute.Evidence.ServiceNotAsDescribedr   r   r   r   r    r8   N)r'   r(   r)   r   r   r*   r+   r-   r.   r.   r.   r/   ServiceNotAsDescribed   s   
r>   canceled	duplicate
fraudulentmerchandise_not_as_describedno_valid_authorizationnot_receivedotherr?   r@   rA   rB   rC   rD   rE   service_not_as_describedreasonrG   N)r'   r(   r)   r   r0   r6   r7   r:   r;   r<   r=   r>   r   r*   r   _inner_class_typesr.   r.   r.   r/   Evidence'   s8   
*

rJ   c                   @   s"   e Zd ZU ee ed< eed< dS )zDispute.TreasuryZdebit_reversalreceived_debitN)r'   r(   r)   r   r-   r*   r.   r.   r.   r/   Treasury   s   
rL   c                   @   sb   e Zd ZU ee ed< ed ed< eee  ed< eeeef  ed< ee ed< ed ed< d	S )
Dispute.CreateParamsamountDispute.CreateParamsEvidenceevidenceexpandmetadatatransactionDispute.CreateParamsTreasurytreasuryN)	r'   r(   r)   r   r+   r*   r   r-   r   r.   r.   r.   r/   CreateParams  s   
rV   c                   @   s~   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed	 ed
< ed ed< ed ed< eed  ed< ed ed< dS )rO   z0Literal['']|Dispute.CreateParamsEvidenceCanceledr?   z1Literal['']|Dispute.CreateParamsEvidenceDuplicater@   z2Literal['']|Dispute.CreateParamsEvidenceFraudulentrA   zALiteral['']|Dispute.CreateParamsEvidenceMerchandiseNotAsDescribedrB   z<Literal['']|Dispute.CreateParamsEvidenceNoValidAuthorizationrC   z3Literal['']|Dispute.CreateParamsEvidenceNotReceivedrD   z-Literal['']|Dispute.CreateParamsEvidenceOtherrE   rF   rH   z=Literal['']|Dispute.CreateParamsEvidenceServiceNotAsDescribedrG   Nr'   r(   r)   r   r*   r   r.   r.   r.   r/   CreateParamsEvidence  s8   
rX   c                   @   s   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< ed ed	< ed ed
< ed ed< ed ed< ed ed< dS )z$Dispute.CreateParamsEvidenceCanceledLiteral['']|strr   Literal['']|intr   Literal['']|boolr   r   r   r    r!   -Literal['']|Literal['merchandise', 'service']r#   6Literal['']|Literal['merchant_rejected', 'successful']r%   r&   Nr'   r(   r)   r   r*   r.   r.   r.   r/   CreateParamsEvidenceCanceled[  s   
r_   c                   @   sV   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< ee ed< dS )	z%Dispute.CreateParamsEvidenceDuplicaterY   r   r1   r2   r3   r    r4   Nr'   r(   r)   r   r*   r-   r.   r.   r.   r/   CreateParamsEvidenceDuplicate  s   
ra   c                   @   s&   e Zd ZU ed ed< ed ed< dS )z&Dispute.CreateParamsEvidenceFraudulentrY   r   r    Nr^   r.   r.   r.   r/   CreateParamsEvidenceFraudulent  s   
rb   c                   @   sV   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< ed ed	< d
S )z5Dispute.CreateParamsEvidenceMerchandiseNotAsDescribedrY   r   r    rZ   r8   r9   r]   r%   r&   Nr^   r.   r.   r.   r/   -CreateParamsEvidenceMerchandiseNotAsDescribed  s   
rc   c                   @   s&   e Zd ZU ed ed< ed ed< dS )z0Dispute.CreateParamsEvidenceNoValidAuthorizationrY   r   r    Nr^   r.   r.   r.   r/   (CreateParamsEvidenceNoValidAuthorization  s   
rd   c                   @   sJ   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< d	S )
z'Dispute.CreateParamsEvidenceNotReceivedrY   r   rZ   r   r    r!   r\   r#   Nr^   r.   r.   r.   r/   CreateParamsEvidenceNotReceived  s   
re   c                   @   s>   e Zd ZU ed ed< ed ed< ed ed< ed ed< dS )z!Dispute.CreateParamsEvidenceOtherrY   r   r    r!   r\   r#   Nr^   r.   r.   r.   r/   CreateParamsEvidenceOther  s   
rf   c                   @   sJ   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< dS )	z1Dispute.CreateParamsEvidenceServiceNotAsDescribedrY   r   rZ   r   r   r    r8   Nr^   r.   r.   r.   r/   )CreateParamsEvidenceServiceNotAsDescribed  s   
rg   c                   @   s   e Zd ZU eed< dS )rT   rK   N)r'   r(   r)   r-   r*   r.   r.   r.   r/   CreateParamsTreasury  s   
rh   c                   @   sj   e Zd ZU ed ed< ee ed< eee  ed< ee ed< ee ed< eed  ed< ee ed	< d
S )Dispute.ListParamszDispute.ListParamsCreated|intcreatedZending_beforerQ   limitZstarting_afterZexpiredZlostZ	submittedZunsubmittedZwonstatusrS   N)	r'   r(   r)   r   r*   r-   r   r+   r   r.   r.   r.   r/   
ListParams  s   
rn   c                   @   s>   e Zd ZU ee ed< ee ed< ee ed< ee ed< dS )zDispute.ListParamsCreatedgtZgteltZlteN)r'   r(   r)   r   r+   r*   r.   r.   r.   r/   ListParamsCreated;  s
   
rq   c                   @   sB   e Zd ZU ee ed< ed ed< eee  ed< ed ed< dS )Dispute.ModifyParamsrN   Dispute.ModifyParamsEvidencerP   rQ   Literal['']|Dict[str, str]rR   N)r'   r(   r)   r   r+   r*   r   r-   r.   r.   r.   r/   ModifyParamsM  s
   
ru   c                   @   s~   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed	 ed
< ed ed< ed ed< eed  ed< ed ed< dS )rs   z0Literal['']|Dispute.ModifyParamsEvidenceCanceledr?   z1Literal['']|Dispute.ModifyParamsEvidenceDuplicater@   z2Literal['']|Dispute.ModifyParamsEvidenceFraudulentrA   zALiteral['']|Dispute.ModifyParamsEvidenceMerchandiseNotAsDescribedrB   z<Literal['']|Dispute.ModifyParamsEvidenceNoValidAuthorizationrC   z3Literal['']|Dispute.ModifyParamsEvidenceNotReceivedrD   z-Literal['']|Dispute.ModifyParamsEvidenceOtherrE   rF   rH   z=Literal['']|Dispute.ModifyParamsEvidenceServiceNotAsDescribedrG   NrW   r.   r.   r.   r/   ModifyParamsEvidence_  s8   
rv   c                   @   s   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< ed ed	< ed ed
< ed ed< ed ed< ed ed< dS )z$Dispute.ModifyParamsEvidenceCanceledrY   r   rZ   r   r[   r   r   r   r    r!   r\   r#   r]   r%   r&   Nr^   r.   r.   r.   r/   ModifyParamsEvidenceCanceled  s   
rw   c                   @   sV   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< ee ed< dS )	z%Dispute.ModifyParamsEvidenceDuplicaterY   r   r1   r2   r3   r    r4   Nr`   r.   r.   r.   r/   ModifyParamsEvidenceDuplicate  s   
rx   c                   @   s&   e Zd ZU ed ed< ed ed< dS )z&Dispute.ModifyParamsEvidenceFraudulentrY   r   r    Nr^   r.   r.   r.   r/   ModifyParamsEvidenceFraudulent  s   
ry   c                   @   sV   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< ed ed	< d
S )z5Dispute.ModifyParamsEvidenceMerchandiseNotAsDescribedrY   r   r    rZ   r8   r9   r]   r%   r&   Nr^   r.   r.   r.   r/   -ModifyParamsEvidenceMerchandiseNotAsDescribed  s   
rz   c                   @   s&   e Zd ZU ed ed< ed ed< dS )z0Dispute.ModifyParamsEvidenceNoValidAuthorizationrY   r   r    Nr^   r.   r.   r.   r/   (ModifyParamsEvidenceNoValidAuthorization  s   
r{   c                   @   sJ   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< d	S )
z'Dispute.ModifyParamsEvidenceNotReceivedrY   r   rZ   r   r    r!   r\   r#   Nr^   r.   r.   r.   r/   ModifyParamsEvidenceNotReceived  s   
r|   c                   @   s>   e Zd ZU ed ed< ed ed< ed ed< ed ed< dS )z!Dispute.ModifyParamsEvidenceOtherrY   r   r    r!   r\   r#   Nr^   r.   r.   r.   r/   ModifyParamsEvidenceOther.  s   
r}   c                   @   sJ   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed ed< dS )	z1Dispute.ModifyParamsEvidenceServiceNotAsDescribedrY   r   rZ   r   r   r    r8   Nr^   r.   r.   r.   r/   )ModifyParamsEvidenceServiceNotAsDescribedB  s   
r~   c                   @   s   e Zd ZU eee  ed< dS )Dispute.RetrieveParamsrQ   Nr'   r(   r)   r   r   r-   r*   r.   r.   r.   r/   RetrieveParamsX  s   
r   c                   @   s*   e Zd ZU eee  ed< ed ed< dS )Dispute.SubmitParamsrQ   rt   rR   Nr   r.   r.   r.   r/   SubmitParams^  s   
r   rN   r   Zbalance_transactionsrj   currencyrP   idZlivemode)Z*cardholder_authentication_issuer_liabilityZ eci5_token_transaction_with_tavvZexcess_disputes_in_timeframeZ3has_not_met_the_minimum_dispute_amount_requirementsZinvalid_duplicate_disputeZ invalid_incorrect_amount_disputeZinvalid_no_authorizationZinvalid_use_of_disputesZ merchandise_delivered_or_shippedZ#merchandise_or_service_as_describedZnot_cancelledrE   Zrefund_issuedZ%submitted_beyond_allowable_time_limitZtransaction_3ds_requiredZ.transaction_approved_after_prior_fraud_disputeZtransaction_authorizedZtransaction_electronically_readZ3transaction_qualifies_for_visa_easy_payment_serviceZtransaction_unattendedZloss_reasonrR   objectrl   rm   r   rS   rU   rM   )paramsreturnc                 K   s   t d| jd|  |dS ){  
        Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to [Dispute reasons and evidence](https://stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence) for more details about evidence requirements.
        r   postr   )r   _static_request	class_urlclsr   r.   r.   r/   create  s    zDispute.createc                    s    t d| jd|  |dI dH S )r   r   r   r   N)r   _static_request_asyncr   r   r.   r.   r/   create_async  s    
zDispute.create_asyncri   c                 K   s4   | j d|  |d}t|ts0tdt|j |S )
        Returns a list of Issuing Dispute objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
        getr   %Expected list object from API, got %s)r   r   
isinstancer   	TypeErrortyper'   r   r   resultr.   r.   r/   list  s    
zDispute.listc                    s:   | j d|  |dI dH }t|ts6tdt|j |S )r   r   r   Nr   )r   r   r   r   r   r   r'   r   r.   r.   r/   
list_async  s    
zDispute.list_asyncrr   )r   r   r   c                 K   s*   d|   t|f }td| jd||dS )
        Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string.
        %s/%sr   r   r   )r   r
   r   r   r   r   r   urlr.   r.   r/   modify  s    zDispute.modifyc                    s0   d|   t|f }td| jd||dI dH S )r   r   r   r   r   N)r   r
   r   r   r   r.   r.   r/   modify_async  s    
zDispute.modify_asyncr   c                 K   s   | |fi |}|   |S )6
        Retrieves an Issuing Dispute object.
        )refreshr   r   r   instancer.   r.   r/   retrieve  s    zDispute.retrievec                    s"   | |fi |}|  I dH  |S )r   N)Zrefresh_asyncr   r.   r.   r/   retrieve_async$  s    zDispute.retrieve_asyncr   )disputer   r   c                 K   s"   t d| jddjt|d|dS )!  
        Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence).
        r   r   %/v1/issuing/disputes/{dispute}/submitr   r   )r   r   formatr
   r   r   r   r.   r.   r/   _cls_submit/  s    zDispute._cls_submitc                 K   s   dS r   Nr.   r   r   r.   r.   r/   submitA  s    zDispute.submitc                 K   s   dS r   r.   selfr   r.   r.   r/   r   K  s    r   c              	   K   s(   t d| jddjt| dd|dS )r   r   r   r   r   r   r   )r   _requestr   r
   r   r   r.   r.   r/   r   R  s    c                    s(   t d| jddjt|d|dI dH S )r   r   r   r   r   r   N)r   r   r   r
   r   r.   r.   r/   _cls_submit_asyncd  s    
zDispute._cls_submit_asyncc                    s   dS r   r.   r   r.   r.   r/   submit_asyncv  s    zDispute.submit_asyncc                    s   dS r   r.   r   r.   r.   r/   r     s    r   c              	      s.   t d| jddjt| dd|dI dH S )r   r   r   r   r   r   r   N)r   Z_request_asyncr   r
   r   r   r.   r.   r/   r     s    
)rP   rU   N)@r'   r(   r)   __doc__r   r   r   r*   r   rJ   rL   r   rV   r   rX   r_   ra   rb   rc   rd   re   rf   rg   rh   rn   rq   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r+   r   r   r-   r,   r   r   classmethodr   r   r   r   r   r   r   r   r   r   r   r   staticmethodr   r	   r   r   rI   r.   r.   r.   r/   r      s   
 R
?.

 ?.




r   N)%Zstripe._createable_api_resourcer   Zstripe._expandable_fieldr   Zstripe._list_objectr   Zstripe._listable_api_resourcer   Zstripe._request_optionsr   Zstripe._stripe_objectr   Zstripe._updateable_api_resourcer   Zstripe._utilr	   r
   typingr   r   r   r   r   r   Ztyping_extensionsr   r   r   r   r   Zstripe._balance_transactionr   Zstripe._filer   Zstripe.issuing._transactionr   r   r.   r.   r.   r/   <module>   s$    
