a
    !f'                     @   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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 G dd ded ZdS )    )util)ListableAPIResource)ExpandableField)
ListObject)RequestOptions)StripeObject)class_method_variant)ClassVarListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Charge)PaymentIntentc                
   @   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ee ed< eed  ed< eed  ed< eed< eed< ee ed< ee	 ed< eed< ed ed< eed< ed ed< eed  ed< eed < ee
 ed!< ed6eee ee ee ed# d d$d%d&Zeed7eee ee ee ed# d d$d'd(Zed8ee ed# d d)d*d(Zed+d9ee ed# d d)d,d(Zed:ee ee ee ed- ed  d.d/d0Zeeed1 d d2d3d4Ze	e
d5Z d"S );Reviewz
    Reviews can be used to supplement automated fraud detection with human expertise.

    Learn more about [Radar](https://stripe.com/radar) and reviewing payments
    [here](https://stripe.com/docs/radar/reviews).
    reviewOBJECT_NAMEc                   @   sJ   e Zd ZU ee ed< ee ed< ee ed< ee ed< ee ed< dS )zReview.IpAddressLocationZcityZcountryZlatitudeZ	longituderegionN)__name__
__module____qualname__r   str__annotations__float r   r   \/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/review.pyIpAddressLocation"   s   
r!   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Review.SessionZbrowserZdeviceplatformversionN)r   r   r   r   r   r   r   r   r   r    Session8   s
   
r$   c                   @   s   e Zd ZU ed ed< dS )Review.ApproveParams	List[str]expandNr   r   r   r   r   r   r   r   r    ApproveParamsJ   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 )Review.ListParamszReview.ListParamsCreated|intcreatedr   Zending_beforer&   r'   intlimitZstarting_afterNr(   r   r   r   r    
ListParamsP   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Review.ListParamsCreatedr,   gtZgteltZlteNr(   r   r   r   r    ListParamsCreatedc   s
   
r1   c                   @   s   e Zd ZU ed ed< dS )Review.RetrieveParamsr&   r'   Nr(   r   r   r   r    RetrieveParamsu   s   
r3   Zbilling_zipr   Zcharge)ZapprovedZdisputedredactedZrefundedZrefunded_as_fraudZclosed_reasonr+   id
ip_addressip_address_locationZlivemodeobjectopen)ZmanualruleZopened_reasonr   Zpayment_intentreasonsessionNr%   )r   api_keystripe_versionstripe_accountparamsreturnc              
   K   s*   t d| jddjt|d||||dS )`
        Approves a Review object, closing it and removing it from the list of reviews.
        r   post/v1/reviews/{review}/approver   r=   r>   r?   r@   )r   _static_requestformatr   sanitize_id)clsr   r=   r>   r?   r@   r   r   r    _cls_approve   s    zReview._cls_approvec                 K   s   dS rB   Nr   )r   r=   r>   r?   r@   r   r   r    approve   s    zReview.approve)idempotency_keyr@   rA   c                 K   s   dS rL   r   selfrN   r@   r   r   r    rM      s    rK   c              
   K   s,   t d| jddjt| dd||dS )rB   r   rC   rD   r5   rE   )rN   r@   )r   _requestrH   r   rI   getrO   r   r   r    rM      s    r*   )r=   r>   r?   r@   rA   c                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )z
        Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
        rR   rF   z%Expected list object from API, got %s)rG   Z	class_url
isinstancer   	TypeErrortyper   )rJ   r=   r>   r?   r@   resultr   r   r    list  s    
zReview.listr2   )r5   r@   rA   c                 K   s   | |fi |}|   |S )z,
        Retrieves a Review object.
        )refresh)rJ   r5   r@   instancer   r   r    retrieve&  s    zReview.retrieve)r7   r<   )NNN)NNN)N)N)NNN)!r   r   r   __doc__r   r	   r   r   r   r!   r$   r   r)   r.   r   r1   r3   r   r   r   r,   boolclassmethodr   rK   r   staticmethodrM   r   r   rW   rZ   Z_inner_class_typesr   r   r   r    r      s   
           r   N)Zstriper   Zstripe.api_resources.abstractr   Z%stripe.api_resources.expandable_fieldr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   Zstripe.utilr   typingr	   r
   r   r   r   Ztyping_extensionsr   r   r   r   r   Zstripe.api_resources.charger   Z#stripe.api_resources.payment_intentr   r   r   r   r   r    <module>   s   