
    AiA<                        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 er*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'  G d ded   ed   ed         Z(y)    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralUnpackTYPE_CHECKING)Product)Supplier)OrderCancelParams)OrderCreateParams)OrderListParams)OrderModifyParams)OrderRetrieveParamsc                      e Zd ZU dZdZeed      ed<    G d de      Z	 G 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d<   	 ee   ed<   	 ee   ed<   	 eed<   	 eed<   	 ee   ed<   	 ee   ed<   	 ee
   ed<   	 eed<   	 eed<   	 eed<   	 eeef   ed<   	 eed<   	 ed   ed<   	 ed   ed<   	 ee   ed<   	 ed   ed <   	 ed!ed"ed#   d$d fd%       Zeed!ed"ed#   d$d fd&              Zed"ed#   d$d fd'       Z ed(      d"ed#   d$d fd)       Zed!ed"ed#   d$d fd*       Zeed!ed"ed#   d$d fd+              Zed"ed#   d$d fd,       Z ed-      d"ed#   d$d fd.       Zed"ed/   d$d fd0       Zed"ed/   d$d fd1       Zed"ed2   d$ed    fd3       Zed"ed2   d$ed    fd4       Zeded"ed5   d$d fd6       Z eded"ed5   d$d fd7       Z!eded"ed8   d$d fd9       Z"eded"ed8   d$d fd:       Z#e	e
d;Z$y<)=Orderz
    Orders represent your intent to purchase a particular Climate product. When you create an order, the
    payment is deducted from your merchant balance.
    zclimate.orderOBJECT_NAMEc                       e Zd ZU eed<   y)Order.Beneficiarypublic_nameN)__name__
__module____qualname__str__annotations__     H/var/www/html/immo/lib/python3.12/site-packages/stripe/climate/_order.pyBeneficiaryr   %   s    	r'   r)   c                   t    e Zd ZU  G d de      Zeed<   	 ee   ed<   	 eed<   	 ee   ed<   	 ded<   	 deiZ	y	)
Order.DeliveryDetailc                   `    e Zd ZU ee   ed<   	 eed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)Order.DeliveryDetail.Locationcitycountrylatitude	longituderegionN)r!   r"   r#   r   r$   r%   floatr&   r'   r(   Locationr-   ,   sP    3- L uo%  & SM!r'   r4   delivered_atlocationmetric_tonsregistry_urlr   supplierN)
r!   r"   r#   r   r4   intr%   r   r$   _inner_class_typesr&   r'   r(   DeliveryDetailr+   +   se    	| 	, 	 8$$	 	 sm#	 	 )(3r'   r<   amount_feesamount_subtotalamount_totalbeneficiarycanceled_at)expiredproduct_unavailable	requestedcancellation_reasoncertificateconfirmed_atcreatedcurrency
delayed_atr5   delivery_detailsexpected_delivery_yearidlivemodemetadatar7   objectr   productproduct_substituted_at)awaiting_fundscanceled	confirmed	deliveredopenstatusorderparamsr   returnc                 p    t        d| j                  ddj                  t        |            |            S )  
        Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the
        reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier
        might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe
        provides 90 days advance notice and refunds the amount_total.
        r   post!/v1/climate/orders/{order}/cancelrY   rZ   )r   _static_requestformatr
   clsrY   rZ   s      r(   _cls_cancelzOrder._cls_cancel   sJ     3::%e, ;     	
 		
r'   c                      yr]   Nr&   rY   rZ   s     r(   cancelzOrder.cancel   s     	r'   c                      yrh   r&   selfrZ   s     r(   rj   zOrder.cancel   s     	r'   rf   c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r]   r   r^   r_   rM   r`   ra   )r   _requestrc   r
   getrl   s     r(   rj   zOrder.cancel   sP     MM3::%dhhtn5 ;    	
 		
r'   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r]   r   r^   r_   r`   ra   N)r   _static_request_asyncrc   r
   rd   s      r(   _cls_cancel_asynczOrder._cls_cancel_async   sX      ++3::%e, ;   ,  	
 		
s   7AA
	Ac                    K   ywrh   r&   ri   s     r(   cancel_asynczOrder.cancel_async  s      	   c                    K   ywrh   r&   rl   s     r(   ru   zOrder.cancel_async  s      	rv   rs   c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r]   r   r^   r_   rM   r`   ra   N)r   _request_asyncrc   r
   rp   rl   s     r(   ru   zOrder.cancel_async  s`      %%3::%dhhtn5 ;   &  	
 		
s   AAA
		Ar   c                 Z    t        d| j                  d| j                         |            S )
        Creates a Climate order object for a given Climate product. The order will be processed immediately
        after creation and payment will be deducted your Stripe balance.
        r   r^   ra   )r   rb   	class_urlre   rZ   s     r(   createzOrder.create4  s6        
 	
r'   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)r{   r   r^   ra   N)r   rr   r|   r}   s     r(   create_asynczOrder.create_asyncC  sD      ++ ,  
 	
s   ,97
	9r   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S )
        Lists all Climate order objects. The orders are returned sorted by creation date, with the
        most recently created orders appearing first.
        rp   ra   %Expected list object from API, got %s)rb   r|   
isinstancer   	TypeErrortyper!   re   rZ   results      r(   listz
Order.listT  s]     $$MMO % 

 &*-7<((* 
 r'   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)r   rp   ra   Nr   )rr   r|   r   r   r   r   r!   r   s      r(   
list_asynczOrder.list_asyncg  sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"r   c                 z    | j                         dt        |      }t        d| j                  d||            S )]
        Updates the specified order by setting the values of the parameters passed.
        /r   r^   ra   )r|   r
   r   rb   re   rM   rZ   urls       r(   modifyzOrder.modify|  sD    
 +b/:   
 	
r'   c                    K   | j                         dt        |      }t        d| j                  d||       d{         S 7 w)r   r   r   r^   ra   N)r|   r
   r   rr   r   s       r(   modify_asynczOrder.modify_async  sR      +b/:++ ,  
 	
s   <A	A
	A	r   c                 8     | |fi |}|j                          |S )T
        Retrieves the details of a Climate order object with the given ID.
        )refreshre   rM   rZ   instances       r(   retrievezOrder.retrieve  s$     r$V$r'   c                 T   K    | |fi |}|j                          d{    |S 7 w)r   N)refresh_asyncr   s       r(   retrieve_asynczOrder.retrieve_async  s3      r$V$$$&&& 	's   (&()r@   rK   N)%r!   r"   r#   __doc__r   r   r   r%   r   r)   r<   r:   r   r$   r   boolr   r   classmethodr   rf   r   staticmethodrj   r	   rs   ru   r~   r   r   r   r   r   r   r   r   r;   r&   r'   r(   r   r      s   

 7FK'/23El +4 +4Z    +&&# "=>  # 3- L M  3- >**   	G N 38n  O$$ Y'' %SM) F  

#)*=#>
	
 
( c V,?%@ W    v&9: w   -(
23
	
 )
( 

#)*=#>
	
 
( 		$%89			  	 	23			 	 -.
23
	
 /
( 
f%89 
g 
 
 
12
	
 
  F#45 *W:M  $ /0	G	 ( 
 
v.A'B 
w 
 
 

 &': ;
	
 
   &'< =	   &'< =	  #*r'   r   N))stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._updateable_api_resourcer   stripe._utilr	   r
   typingr   r   r   r   r   r   typing_extensionsr   r   r   stripe.climate._productr   stripe.climate._supplierr   *stripe.params.climate._order_cancel_paramsr   *stripe.params.climate._order_create_paramsr   (stripe.params.climate._order_list_paramsr   *stripe.params.climate._order_modify_paramsr   ,stripe.params.climate._order_retrieve_paramsr   r   r&   r'   r(   <module>r      sg    B 4 * = . A : A A < </1LLHL
\'" '"\r'   