a
    !f                     @   s   d dl mZ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mZmZmZ d dlmZmZmZmZ erd dlmZ G d	d
 d
ed
 ed
 ZdS )    )CreateableAPIResourceListableAPIResource)ExpandableField)
ListObject)RequestOptions)StripeObject)ClassVarDictListOptionalcast)LiteralNotRequiredUnpackTYPE_CHECKING)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eed< eed< eed< ee ed< ee ed< eed< ee	 ed< eed< eeef ed< ed ed< ed ed< eed< ed ed< e
ed< eed  ed< ed.ee ee ee ee ed! d d"d#d$Zed/ee ee ee ed% ed  d&d'd(Zeeed) d d*d+d,Ze	e
d-Zd S )0DebitReversalz
    You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal.
    ztreasury.debit_reversalOBJECT_NAMEc                   @   s   e Zd ZU ee ed< dS )zDebitReversal.LinkedFlowsZissuing_disputeN)__name__
__module____qualname__r   str__annotations__ r   r   m/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/treasury/debit_reversal.pyLinkedFlows   s   
r   c                   @   s   e Zd ZU ee ed< dS )zDebitReversal.StatusTransitionsZcompleted_atN)r   r   r   r   intr   r   r   r   r   StatusTransitions$   s   
r   c                   @   s.   e Zd ZU ed ed< ed ed< eed< dS )DebitReversal.CreateParams	List[str]expandzDict[str, str]metadatareceived_debitNr   r   r   r   r   r   r   r   r   r   CreateParams*   s   
r$   c                   @   sj   e Zd ZU ed ed< ed ed< eed< ed ed< ed ed< ed	 ed
< ed ed< ed ed< dS )DebitReversal.ListParamsr   Zending_beforer   r    financial_accountr   limitr"   zLiteral['lost', 'won']
resolutionZstarting_afterz.Literal['canceled', 'completed', 'processing']statusNr#   r   r   r   r   
ListParams8   s   
r*   c                   @   s   e Zd ZU ed ed< dS )DebitReversal.RetrieveParamsr   r    N)r   r   r   r   r   r   r   r   r   RetrieveParamsZ   s   
r,   amountcreatedcurrencyr&   Zhosted_regulatory_receipt_urlidlinked_flowsZlivemoder!   )ZachZcardnetworkobjectr"   )failed
processingZ	succeededr)   status_transitionsr   ZtransactionNr   )api_keyidempotency_keystripe_versionstripe_accountparamsreturnc                 K   s    t d| d|  |||||S )zN
        Reverses a ReceivedDebit and creates a DebitReversal object.
        r   post)r   _static_request	class_url)clsr7   r8   r9   r:   r;   r   r   r   create   s    zDebitReversal.creater%   )r7   r9   r:   r;   r<   c                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )z3
        Returns a list of DebitReversals.
        get)r7   r9   r:   r;   z%Expected list object from API, got %s)r>   r?   
isinstancer   	TypeErrortyper   )r@   r7   r9   r:   r;   resultr   r   r   list   s    
zDebitReversal.listr+   )r0   r;   r<   c                 K   s   | |fi |}|   |S )z3
        Retrieves a DebitReversal object.
        )refresh)r@   r0   r;   instancer   r   r   retrieve   s    zDebitReversal.retrieve)r1   r6   )NNNN)NNN)r   r   r   __doc__r   r   r   r   r   r   r   r   r$   r*   r,   r   r   r   boolr	   r   classmethodr   rA   r   rG   rJ   Z_inner_class_typesr   r   r   r   r      sx   
"       r   N)Zstripe.api_resources.abstractr   r   Z%stripe.api_resources.expandable_fieldr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   typingr   r	   r
   r   r   Ztyping_extensionsr   r   r   r   Z)stripe.api_resources.treasury.transactionr   r   r   r   r   r   <module>   s   
