
    _jP              	          d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZ d dlZd dlmZ d dlmZmZmZ d dlmZ d dlmZmZ d d	l m!Z! d d
l"m#Z# erd dl$m%Z% edee&e
f         deee&e
f                  dee&e
f         fd            Z'ede(deee&e
f                  de(fd            Z'de(deee&e
f                  de(fdZ'deee
                  dee
         dee&e
f         fdZ) G d dee&e
f                   Z*dS )    N)deepcopy)TYPE_CHECKINGTypeLiteralSelf)AnyDictListOptionalMappingSetTupleClassVarUnioncastoverload)_util)StripeResponseStripeStreamResponseStripeStreamResponseAsync)_encode_datetime)PERSISTENT_OPTIONS_KEYSextract_options_from_dict)ApiMode)BaseAddress_APIRequestorcurrentpreviousreturnc                     d S N r   r   s     Y/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/stripe/_stripe_object.py_compute_diffr&   )   s	     S    c                     d S r"   r#   r$   s     r%   r&   r&   /   s	     Sr'   c                 P   t          | t                    rt          t          t          t
          f         |           } |pi }|                                 }t          |                                          t          |                                          z
  D ]}d||<   |S | | ndS )N )	
isinstancedictr   r	   strr   copysetkeys)r   r   diffkeys       r%   r&   r&   5   s     '4   tCH~w//>r||~~x}}''#diikk*:*:: 	 	CDII)77r1r'   arrayc                 *   | pg } |pg }i }t          |           D ]x\  }}t          |          |k    r||         nd }t          |d          r&|                    |          |t	          |          <   Xt          ||          |t	          |          <   y|S )N	serialize)	enumeratelenhasattrr5   r-   r&   )r3   r   paramsivprevious_items         r%   _serialize_listr=   B   s     KRE~2HF%   = =1'*8}}q'8'8d1k"" 	=[[77F3q66NN*1m<<F3q66NNMr'   c                       e Zd ZU  G d dej                  Zeeef         e	d<   e
eeef                  e	d<   	 	 	 	 	 dQddde
e         de
e         d	e
e         d
e
e         de
e         de
d         def fdZed             Zed             Zed             Zede
e         fd            Zdeeef         ddf fdZes fdZd Z fdZdededdf fdZdedef fdZdeddf fdZdeeef         ddfd Zdeed!f         fd"Ze	 	 	 dRd#d$d%eeef         d&e
e         d	e
e         d
e
e         de
e         d'ede fd(            Z!edd)d%eeef         de
e         d*dd'ede f
d+            Z"	 	 	 	 	 dSd#d$d%eeef         de
e         d-e
e#         d	e
e         d
e
e         de
e         d'eddfd.Z$d,ddd/d%eeef         d-e
e#         de
e         d*e
d         d'eddf fd0Z% e&j'        d1          	 dTd2d3d4e(d5         d6ede
eeef                  d7e)dd f
d8            Z*	 	 dUd4e(d5         d6ede
eeef                  d9e
e+e                  d7e)dd fd:Z,	 	 dUd4e(d5         d6ede
eeef                  d9e
e+e                  d7e)dd fd;Z-	 dTd2d3d4ed6ede
eeef                  d7e)de.f
d<Z/	 dTd2d3d4ed6ede
eeef                  d7e)de0f
d=Z1defd>Z2defd?Z3 e&j'        d@          deeef         fdA            Z4deeef         fdBZ5 e&j'        dC          deeef         fdD            Z6e e&j'        dC          de
e         fdE                        Z7dFe
eeef                  deeef         fdGZ8dV fdHZ9dIee:ef         dd f fdJZ;i Z<e=eeef                  e	dK<   i Z>e=eee?d          f                  e	dL<   g Z@e=e+e                  e	dM<   dNede
e?d                   fdOZAdNefdPZB xZCS )WStripeObjectc                   (     e Zd Zdedef fdZ xZS )StripeObject._ReprJSONEncoderor    c                     t          |t          j                  rt          |          S t          t          j        |                               |          S r"   )r+   datetimer   superr?   _ReprJSONEncoderdefault)selfrB   	__class__s     r%   rG   z%StripeObject._ReprJSONEncoder.defaultU   sG    !X.// +'***6==EEaHHHr'   )__name__
__module____qualname__r   rG   __classcell__rI   s   @r%   rF   rA   T   sW        	IS 	IS 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Ir'   rF   _retrieve_params	_previousN)
_requestoridapi_keystripe_versionstripe_accountlast_responserQ   r   r9   c                "   t          t          |                                            t                      | _        t                      | _        || _        || _        d | _        ddl	m
} | |j        |||          n|| _        |r|| d<   d S d S )Nr   r   rS   rT   rU   rR   )rE   r?   __init__r/   _unsaved_values_transient_values_last_responserO   rP   stripe._api_requestorr   _global_with_optionsrQ   )
rH   rR   rS   rT   rU   rV   rQ   r9   r   rI   s
            r%   rY   zStripeObject.__init__]   s     	lD!!**,,,),+.55+ &777777 ! /M.--     	  	DJJJ	 	r'   c                     | j         j        S r"   )rQ   rS   rH   s    r%   rS   zStripeObject.api_key   s    &&r'   c                     | j         j        S r"   )rQ   rU   r`   s    r%   rU   zStripeObject.stripe_account       --r'   c                     | j         j        S r"   )rQ   rT   r`   s    r%   rT   zStripeObject.stripe_version   rb   r'   r    c                     | j         S r"   )r\   r`   s    r%   rV   zStripeObject.last_response   s    ""r'   update_dictc                     |D ]}| j                             |           t          t          |                               |          S r"   )rZ   addrE   r?   update)rH   re   krI   s      r%   rh   zStripeObject.update   sL      	( 	(A $$Q''''\4((//<<<r'   c                     |t           v r#| j                            ||i          | _        d S |d         dk    s	|| j        v r)t	          t
          |                               ||          S || |<   d S Nr   _)r   rQ   _new_requestor_with_options__dict__rE   r?   __setattr__rH   ri   r;   rI   s      r%   ro   zStripeObject.__setattr__   s}    +++"&/"M"MF# # tts{{a4=00\400<<QBBBDG4r'   c                     |d         dk    rt          |          	 || j        v r| j        |         }| |         S # t          $ r}t          |j         |d }~ww xY wrk   )AttributeError_field_remappingsKeyErrorargs)rH   ri   errs      r%   __getattr__zStripeObject.__getattr__   st    ts{{$Q'''9....q1AAw 9 9 9$ch/S89s   ; 
AAAc                     |d         dk    s	|| j         v r(t          t          |                               |          S | |= d S rk   )rn   rE   r?   __delattr__rH   ri   rI   s     r%   ry   zStripeObject.__delattr__   sE    ts{{a4=00\400<<Q???GGGr'   ri   r;   c                 2   |dk    r)t          d|dt          |           d|d|d	          t          | d          st                      | _        | j                            |           t          t          |                               ||           d S )Nr*   zYou cannot set z to an empty string on this object. The empty string is treated specially in our requests. If you'd like to delete the property using the save() method on this object, you may set .z#=None. Alternatively, you can pass zI='' to delete the property when using a resource method such as modify().rZ   )	
ValueErrorr-   r8   r/   rZ   rg   rE   r?   __setitem__rp   s      r%   r~   zStripeObject.__setitem__   s    77*
 11c$iiiiAAA	'   t.// 	)#&55D   ###lD!!--a33333r'   c                 x   	 t          t          |                               |          S # t          $ r}|| j        v rIt          |d|dd                    t          |                                                               ddlm	} t          | |          r|dk    rt          d          |d }~ww xY w)Nz.  HINT: The z attribute was set in the past.It was then wiped when refreshing the object with the result returned by Stripe's API, probably as a result of a save().  The attributes currently available on this object are: z, r   )Invoicepayment_intentzThe 'payment_intent' attribute is no longer available on Invoice objects. See the docs for more details: https://docs.stripe.com/changelog/basil/2025-03-31/add-support-for-multiple-partial-payments-on-invoices#why-is-this-a-breaking-change)rE   r?   __getitem__rt   r[   joinlistr0   stripe._invoicer   r+   )rH   ri   rv   r   rI   s       r%   r   zStripeObject.__getitem__   s    	t,,88;;; 	 	 	D*** qq!!!TYYtDIIKK'8'8999;   433333 dG,, 6F1F1F" J   	)	s   '+ 
B9A?B44B9c                     t          t          |                               |           t          | d          r%|| j        v r| j                            |           d S d S d S )NrZ   )rE   r?   __delitem__r8   rZ   removerz   s     r%   r   zStripeObject.__delitem__   sp    lD!!--a000 4*++ 	+T5I0I0I ''*****	+ 	+0I0Ir'   statec                 0    |                      |           d S r"   )rh   )rH   r   s     r%   __setstate__zStripeObject.__setstate__   s    Er'   .c                     t          |           |                     dd           | j        | j        | j        ft          |           f}|S NrR   )typegetrS   rT   rU   r,   )rH   reduce_values     r%   
__reduce__zStripeObject.__reduce__   sL    JJt$$##	 JJ	
 r'   V1)api_modevaluesr2   r   c                b    ddl m} |                     | |j        |||          ||          S )Nr   r   rX   )r   	requestorr   rV   )r]   r   _construct_fromr^   )clsr   r2   rT   rU   rV   r   r   s           r%   construct_fromzStripeObject.construct_from  s^     	877777""8m8--  
 ' # 	
 	
 		
r'   )rV   r   c                z     | |                     d          ||          }|                    ||||           |S )NrR   )rV   rQ   )r   rV   r   r   )r   _refresh_from)r   r   rV   r   r   instances         r%   r   zStripeObject._construct_from  sa     3JJt' 
 
 

 	'	 	 	
 	
 	
 r'   Fpartialc                r    |                      |||| j                            |||d          |           d S )NrX   )r   r   rV   r   r   )r   rQ   rm   )rH   r   rS   r   rT   rU   rV   r   s           r%   refresh_fromzStripeObject.refresh_from1  sa     	'oAA&&4&4    	 	
 	
 	
 	
 	
r'   )r   rV   r   c                l    |p j          _         |pt          |dd            _        |r j        t	          |          z
   _        ngt	                                                     t	          |          z
  } j        |z   _        t	                       _                                           j        t	          |          z
   _        |                                D ]\  }} 	                    |           
                    |          }	|	r# fd|                                D             }
nNt          t          t          t          t                   f         t          j        |d  j                             }
t#          t                                         ||
           | _        d S )Nr\   c                     i | ];\  }}||d n0t          t          t          j        |d j                            <S )Nrespr9   klass_r   r   )r   r?   r   _convert_to_stripe_objectrQ   ).0ri   r;   r   inner_classrH   s      r%   
<dictcomp>z.StripeObject._refresh_from.<locals>.<dictcomp>i  sq        1 y t$7!"#'#.&*o%-  	 	  r'   r   )rQ   getattrr\   rZ   r/   r0   r[   clearitems_get_inner_class_type _get_inner_class_is_beneath_dictr   r   r?   r
   r   r   rE   r~   rP   )rH   r   r   rV   r   r   removedri   r;   is_dictobjr   rI   s   `    `     @r%   r   zStripeObject._refresh_fromJ  s    $6t+ 
w$d0
 0
  	#'#7#f++#ED  $))++&&V4G%)%;g%ED"#&55D JJLLL!%!7#f++!ELLNN 	: 	:DAq44Q77K;;A>>G       !"		    ,\(::;3#*"&/!)  	 	 ,%%11!S9999r'   z:This will be removed in a future version of stripe-python.api)base_addressmethod)r   postdeleteurlr   c                @    t                               | ||||          S )N)r9   r   )r?   _request)rH   r   r   r9   r   s        r%   requestzStripeObject.request  s0     $$% % 
 
 	
r'   usagec                x    || j         }t          |          \  }}| j                            ||||||          S N)r9   optionsr   r   )rO   r   rQ   r   rH   r   r   r9   r   r   request_optionsrequest_paramss           r%   r   zStripeObject._request  sT     >*F*CF*K*K'&&!#% ' 
 
 	
r'   c                   K   || j         }t          |          \  }}| j                            ||||||           d {V S r   )rO   r   rQ   request_asyncr   s           r%   _request_asynczStripeObject._request_async  sv       >*F*CF*K*K'_22!#% 3 
 
 
 
 
 
 
 
 	
r'   c                v    || j         }t          |          \  }}| j                            |||||          S N)r9   r   r   )rO   r   rQ   request_streamrH   r   r   r9   r   r   r   s          r%   _request_streamzStripeObject._request_stream  sQ     >*F*CF*K*K'--!#% . 
 
 	
r'   c                   K   || j         }t          |          \  }}| j                            |||||           d {V S r   )rO   r   rQ   request_stream_asyncr   s          r%   _request_stream_asyncz"StripeObject._request_stream_async  ss       >*F*CF*K*K'_99!#% : 
 
 
 
 
 
 
 
 	
r'   c                    t          |           j        g}|                     d          }t          |t                    r|                    |           t          |                     d          t                    r+|                    d|                     d                     dd                    |          dt          t          |                     dt	          |           }|S )NobjectrR   zid=< z at z> JSON: )	r   rJ   r   r+   r-   appendr   hexrR   )rH   ident_partsobj_strunicode_reprs       r%   __repr__zStripeObject.__repr__  s    Dzz*+((8$$gs## 	(w'''dhhtnnc** 	<$((4...:;;; HH[!!!!4MMMMIII

 r'   c                 `    t          j        |                                 dd| j                  S )NT   )	sort_keysindentr   )jsondumps_to_dict_recursiverF   r`   s    r%   __str__zStripeObject.__str__  s6    z##%%%	
 
 
 	
r'   zEDeprecated. The public interface will be removed in a future version.c                      t          |           S r"   )r,   r`   s    r%   to_dictzStripeObject.to_dict	  s     Dzzr'   c                    dt           t          t          t          t          t
          f         f                  dt           t          t          t
          f                  fdfdt          |                                           D             S )Nvaluer    c                 `    | d S t          | t                    r|                                 S | S r"   )r+   r?   r   )r   s    r%   maybe_to_dict_recursivez@StripeObject._to_dict_recursive.<locals>.maybe_to_dict_recursive  s7     }tE<00 //111r'   c                     i | ]a\  }}|t          |t                    r;t          t          t          t          t
                   |                              n
 |          bS r#   )r+   r   mapr   r
   r   )r   r2   r   r   s      r%   r   z3StripeObject._to_dict_recursive.<locals>.<dictcomp>  su     
 
 
 U %&&0c14S	53I3IJJKKK((//
 
 
r'   )r   r   r?   r	   r-   r   r,   r   )rH   r   s    @r%   r   zStripeObject._to_dict_recursive  s    	E,S#X">?@	d38n%	 	 	 	
 
 
 
 #4jj..00	
 
 
 	
r'   z^For internal stripe-python use only. The public interface will be removed in a future version.c                 *    |                                  S r"   )r   r`   s    r%   to_dict_recursivezStripeObject.to_dict_recursive!  s     &&(((r'   c                 "    t          | d          S r   )r   r`   s    r%   	stripe_idzStripeObject.stripe_id'  s    
 tT"""r'   r   c                 ,   i }| j         pt                      }|p| j        pi }|                                 D ]\  }}|dk    s|                    d          r!t          |t          j                  r<t          |d          r5|	                    |
                    |d                     }|i k    r|||<   ||v r(t          ||
                    |d                     ||<   |dk    r)|'t          ||
                    |d                     ||<   |S )NrR   rl   r5   additional_owners)rZ   r/   rP   r   
startswithr+   stripeAPIResourcer8   r5   r   r&   r=   )rH   r   r9   unsaved_keysri   r;   childs          r%   r5   zStripeObject.serialize.  s'    "$+4suu3t~3JJLL 	F 	FDAqDyyALL--yAv122 	FK(( FHLLD$9$9::B;; %F1Il"")!X\\!T-B-BCCq		)))am+Ax||At/D/DEEq	r'   c                    t          |                     d          | j        | j        | j                  }| j        |_        |                                 D ].\  }}t          t           |                              ||           /|S )NrR   )rT   rU   )	r?   r   rS   rT   rU   rO   r   rE   r~   )rH   copiedri   r;   rI   s       r%   __copy__zStripeObject.__copy__J  s    HHTNNL..	
 
 
 #'"7JJLL 	: 	:DAq ,''33Aq9999r'   memoc                     |                                  }||t          |           <   |                                 D ]<\  }}t          t          |                              |t          ||                     =|S r"   )r   rR   r   rE   r?   r~   r   )rH   r   r   ri   r;   rI   s        r%   __deepcopy__zStripeObject.__deepcopy__`  sp    RXXJJLL 	J 	JDAq ,''33Ax47H7HIIIIr'   rs   _inner_class_types_inner_class_dicts
field_namec                 6    | j                             |          S r"   )r   r   rH   r   s     r%   r   z"StripeObject._get_inner_class_typep  s     &**:666r'   c                     || j         v S r"   )r   r   s     r%   r   z-StripeObject._get_inner_class_is_beneath_dictu  s    T444r'   )NNNNN)NNN)NFNNNr"   )NN)r    r?   )DrJ   rK   rL   r   JSONEncoderrF   r   r-   r   __annotations__r   r   rY   propertyrS   rU   rT   rV   rh   r   ro   rw   ry   r~   r   r   r	   r   r   r   classmethodr   r   r   r   boolr   r   r   
deprecatedr   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r5   r   intr   rs   r   r   r   r   r   r   rM   rN   s   @r%   r?   r?   S   s	        I I I I I4+ I I I c3h''''S)**** !!%(,(,26" 15" " "SM" #" !	"
 !"  /" _-" " " " " " "H ' ' X' . . X. . . X. #x7 # # # X#
="38,=	= = = = = =  	 	 	 	 			9 		9 		9	 	 	 	 	4S 4S 4T 4 4 4 4 4 4$S S      2+S +T + + + + + +$sCx. T    E#s(O     
 )-(,26
 !
 
 
S#X
 c]
 !	

 !
  /
 
 

 
 
 [
. 
 37	   S#X  /	
 #  
   [0 "&"'(,(,26
 !
 
 
S#X
 #
 $	

 !
 !
  /
 
 

 
 
 
: #(26/3;  ;  ;  S#X;  $	; 
  /;  O,;  ;  
;  ;  ;  ;  ;  ; z UD  ,0	
 %*
 
 
/0
 
 c3h(	
 "
 

 
 
 
( /3%)
 
/0
 
 c*+	

 S	"
 "
 

 
 
 
6 /3%)
 
/0
 
 c*+	

 S	"
 "
 

 
 
 
6 /3	
 %*
 
 

 
 c*+	
 "
 

 
 
 
0 /3	
 %*
 
 

 
 c*+	
 "
 
#
 
 
 
(#    "
 
 
 
 
 UO c3h    
DcN 
 
 
 
$ Uh )4S> ) ) ) ) Uh #8C= # # #  X# c!23	c3h   8     ,	c3h 	N 	 	 	 	 	 	 35xS#X/444DFc4+?&?!@AFFF.0c+00077	$~&	'7 7 7 7
53 5 5 5 5 5 5 5 5r'   r?   )+rD   r   r.   r   typing_extensionsr   r   r   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   stripe._stripe_responser   r   r   stripe._encoder   stripe._request_optionsr   r   stripe._api_moder   stripe._base_addressr   r]   r   r-   r&   r   r=   r?   r#   r'   r%   <module>r     s           @ @ @ @ @ @ @ @ @ @ @ @                                         
 , + + + + +        % $ $ $ $ $ , , , , , , 4333333 
#s(^'/S#X'?	#s(^   

 
'S#X7   


2
2'S#X7
2
2 
2 
2 
2DI*.s)	#s(^   "c5 c5 c5 c5 c54S> c5 c5 c5 c5 c5r'   