
    <@gZ                     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 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m Z m!Z!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z( e(rd dl)m*Z* d dl+m,Z, d dl-m.Z.  ed       G d ded   ed   e	d   ed   ed                Z/y)    )CreateableAPIResource)DeletableAPIResource)ExpandableField)
ListObject)ListableAPIResource)nested_resource_class_methods)RequestOptions)SearchResultObject)SearchableAPIResource)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)	AsyncIteratorClassVarDictIteratorListOptionalUnioncastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Price)ProductFeature)TaxCodefeaturec            	          e Zd ZU dZdZeed      ed<    G d de      Z	 G d de      Z
 G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d  d!e      Z G d" d#e      Z G d$ d%e      Z G d& d'e      Z G d( d)e      Z G d* d+e      Z G d, d-e      Z G d. d/e      Z  G d0 d1e      Z!e"ed2<   	 e#ed3<   	 e$e%d4      ed5<   	 e$e&   ed6<   	 e&ed7<   	 e'e&   ed8<   	 e"ed9<   	 e'e	   ed:<   	 e(e&e&f   ed;<   	 e&ed<<   	 ed   ed=<   	 e$e
   ed><   	 e$e"   ed?<   	 e$e&   ed@<   	 e$e%dA      edB<   	 edC   edD<   	 e$e&   edE<   	 e#edF<   	 e$e&   edG<   	 e$edH      edI<   	 e)dJe*dK   dLd fdM       Z+e)dJe*dK   dLd fdN       Z,e)dOe&dJe*dP   dLd fdQ       Z-e.e/dOe&dJe*dP   dLd fdR              Z0e.dJe*dP   dLd fdS       Z0 e1dT      dJe*dP   dLd fdU       Z0e)dOe&dJe*dP   dLd fdV       Z2e.e/dOe&dJe*dP   dLd fdW              Z3e.dJe*dP   dLd fdX       Z3 e1dY      dJe*dP   dLd fdZ       Z3e)dJe*d[   dLe4d    fd\       Z5e)dJe*d[   dLe4d    fd]       Z6e)d7e&dJe*d^   dLd fd_       Z7e)d7e&dJe*d^   dLd fd`       Z8e)d7e&dJe*da   dLd fdb       Z9e)d7e&dJe*da   dLd fdc       Z:e)dde*de   dLe;d    fdf       Z<e)dde*de   dLe;d    fdg       Z=e)dde*de   dLe>d    fdh       Z?e)dde*de   dLe@d    fdi       ZAe)de&d7e&dJe*dj   dLdkfdl       ZBe)de&d7e&dJe*dj   dLdkfdm       ZCe)de&dJe*dn   dLe4dk   fdo       ZDe)de&dJe*dn   dLe4dk   fdp       ZEe)de&dJe*dq   dLdkfdr       ZFe)de&dJe*dq   dLdkfds       ZGe)de&d7e&dJe*dt   dLdkfdu       ZHe)de&d7e&dJe*dt   dLdkfdv       ZIe	e
dwZJyx)yProducta  
    Products describe the specific goods or services you offer to your customers.
    For example, you might offer a Standard and Premium version of your goods or service; each version would be a separate Product.
    They can be used in conjunction with [Prices](https://stripe.com/docs/api#prices) to configure pricing in Payment Links, Checkout, and Subscriptions.

    Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription),
    [share a Payment Link](https://stripe.com/docs/payment-links),
    [accept payments with Checkout](https://stripe.com/docs/payments/accept-a-payment#create-product-prices-upfront),
    and more about [Products and Prices](https://stripe.com/docs/products-prices/overview)
    productOBJECT_NAMEc                       e Zd ZU ee   ed<   y)Product.MarketingFeaturenameN)__name__
__module____qualname__r   str__annotations__     N/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/stripe/_product.pyMarketingFeaturer'   =   s    sm	r/   r1   c                   <    e Zd ZU eed<   	 eed<   	 eed<   	 eed<   y)Product.PackageDimensionsheightlengthweightwidthNr)   r*   r+   floatr-   r.   r/   r0   PackageDimensionsr3   C   0    	 	 	 	r/   r:   c                   0    e Zd ZU eed<   	 eee      ed<   y)Product.CreateFeatureParamsentitlement_featureexpandN)r)   r*   r+   r,   r-   r   r   r.   r/   r0   CreateFeatureParamsr=   U   s#      	 DI&&	r/   r@   c                   H   e Zd ZU ee   ed<   	 ed   ed<   	 ee   ed<   	 eee      ed<   	 ee   ed<   	 eee      ed<   	 eed      ed	<   	 eeeef      ed
<   	 eed<   	 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<   	 ee   ed<   y)Product.CreateParamsactive$Product.CreateParamsDefaultPriceDatadefault_price_datadescriptionr?   idimages$Product.CreateParamsMarketingFeaturemarketing_featuresmetadatar(   %Product.CreateParamsPackageDimensionspackage_dimensions	shippablestatement_descriptortax_codegoodservicetype
unit_labelurlN)
r)   r*   r+   r   boolr-   r,   r   r   r   r.   r/   r0   CreateParamsrB   _   sA   D!!	 ((NOO	 !%%	 DI&&	 	 DI&&	 (78
 	
	 d38n--	 		 (3
 	
	 t$$	 *#..	 c""	 '"3455	  $$	 	r/   rX   c                       e Zd ZU eed<   	 eeedf      ed<   	 ed   ed<   	 ed   ed<   	 eed      ed	<   	 ee   ed
<   	 ee   ed<   y)rD   currency3Product.CreateParamsDefaultPriceDataCurrencyOptionscurrency_options4Product.CreateParamsDefaultPriceDataCustomUnitAmountcustom_unit_amount-Product.CreateParamsDefaultPriceDataRecurring	recurring	exclusive	inclusiveunspecifiedtax_behaviorunit_amountunit_amount_decimalN)	r)   r*   r+   r,   r-   r   r   r   intr.   r/   r0   CreateParamsDefaultPriceDataz$Product.CreateParamsDefaultPriceData   s    	 &KKL
 	
	 (B
 	
	 NOO	 ";<
 	
	 !%%	 )--	r/   ri   c                   r    e Zd ZU ed   ed<   	 eed      ed<   	 eed      ed<   	 ee   ed<   	 ee   ed<   y	)
r[   CProduct.CreateParamsDefaultPriceDataCurrencyOptionsCustomUnitAmountr^   ra   re   7Product.CreateParamsDefaultPriceDataCurrencyOptionsTiertiersrf   rg   N)	r)   r*   r+   r   r-   r   r   rh   r,   r.   r/   r0   +CreateParamsDefaultPriceDataCurrencyOptionsz3Product.CreateParamsDefaultPriceDataCurrencyOptions   su    'Q
 	
	 ";<
 	
	 JK
 	
	 !%%	 )--	r/   rn   c                   N    e Zd ZU eed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)rk   enabledmaximumminimumpresetNr)   r*   r+   rW   r-   r   rh   r.   r/   r0   ;CreateParamsDefaultPriceDataCurrencyOptionsCustomUnitAmountzCProduct.CreateParamsDefaultPriceDataCurrencyOptionsCustomUnitAmount   sD     	 S!!	 S!!	 C  	r/   ru   c                   p    e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   	 eed   ef   ed<   y)rl   flat_amountflat_amount_decimalrf   rg   infup_toN)	r)   r*   r+   r   rh   r-   r,   r   r   r.   r/   r0   /CreateParamsDefaultPriceDataCurrencyOptionsTierz7Product.CreateParamsDefaultPriceDataCurrencyOptionsTier   sc     %%	 )--	 !%%	 )--	 WU^S())	r/   r{   c                   N    e Zd ZU eed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)r]   rp   rq   rr   rs   Nrt   r.   r/   r0   ,CreateParamsDefaultPriceDataCustomUnitAmountz4Product.CreateParamsDefaultPriceDataCustomUnitAmount  sB    	 S!!	 S!!	 C  	r/   r}   c                   0    e Zd ZU ed   ed<   	 ee   ed<   y)r_   )daymonthweekyearintervalinterval_countN)r)   r*   r+   r   r-   r   rh   r.   r/   r0   %CreateParamsDefaultPriceDataRecurringz-Product.CreateParamsDefaultPriceDataRecurring$  s%    899	 $C((	r/   r   c                       e Zd ZU eed<   y)rI   r(   Nr)   r*   r+   r,   r-   r.   r/   r0   CreateParamsMarketingFeaturez$Product.CreateParamsMarketingFeature.      		r/   r   c                   <    e Zd ZU eed<   	 eed<   	 eed<   	 eed<   y)rL   r4   r5   r6   r7   Nr8   r.   r/   r0   CreateParamsPackageDimensionsz%Product.CreateParamsPackageDimensions4  r;   r/   r   c                       e Zd Zy)Product.DeleteFeatureParamsNr)   r*   r+   r.   r/   r0   DeleteFeatureParamsr   F      r/   r   c                       e Zd Zy)Product.DeleteParamsNr   r.   r/   r0   DeleteParamsr   I  r   r/   r   c                   Z    e Zd ZU ee   ed<   	 eee      ed<   	 ee   ed<   	 ee   ed<   y)Product.ListFeaturesParamsending_beforer?   limitstarting_afterN)r)   r*   r+   r   r,   r-   r   rh   r.   r/   r0   ListFeaturesParamsr   L  sL    "3''	 DI&&	 3	 $C((	r/   r   c                       e Zd ZU ee   ed<   	 ed   ed<   	 ee   ed<   	 eee      ed<   	 eee      ed<   	 ee   ed<   	 ee   ed<   	 ee   ed	<   	 ee	d
      ed<   	 ee   ed<   y)Product.ListParamsrC   zProduct.ListParamsCreated|intcreatedr   r?   idsr   rN   r   rQ   rT   rV   N)
r)   r*   r+   r   rW   r-   r,   r   rh   r   r.   r/   r0   
ListParamsr   ^  s    D!!	 <==	 #3''	 DI&&	 c##	 3	 t$$	 $C((	 '"3455	 	r/   r   c                   T    e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)Product.ListParamsCreatedgtgteltlteN)r)   r*   r+   r   rh   r-   r.   r/   r0   ListParamsCreatedr     sH    	 	 	 	r/   r   c                      e Zd ZU ee   ed<   	 ee   ed<   	 ed   ed<   	 eee      ed<   	 ed   ed<   	 ed   ed	<   	 ed
   ed<   	 ee   ed<   	 ed   ed<   	 ee   ed<   	 ee   ed<   	 ed   ed<   	 ed   ed<   	 ed   ed<   y)Product.ModifyParamsrC   default_pricezLiteral['']|strrF   r?   zLiteral['']|List[str]rH   z6Literal['']|List[Product.ModifyParamsMarketingFeature]rJ   zLiteral['']|Dict[str, str]rK   r(   z1Literal['']|Product.ModifyParamsPackageDimensionsrM   rN   rO   rP   rU   rV   N)r)   r*   r+   r   rW   r-   r,   r   r.   r/   r0   ModifyParamsr     s   D!!	 #3''	 !!233	 DI&&	 344	 (D
 	
	 :;;	 #	 (?
 	
	 t$$	 *#..	 /00	   122	 *++	r/   r   c                       e Zd ZU eed<   y)$Product.ModifyParamsMarketingFeaturer(   Nr   r.   r/   r0   ModifyParamsMarketingFeaturer     r   r/   r   c                   <    e Zd ZU eed<   	 eed<   	 eed<   	 eed<   y)%Product.ModifyParamsPackageDimensionsr4   r5   r6   r7   Nr8   r.   r/   r0   ModifyParamsPackageDimensionsr     r;   r/   r   c                   $    e Zd ZU eee      ed<   y)Product.RetrieveFeatureParamsr?   Nr)   r*   r+   r   r   r,   r-   r.   r/   r0   RetrieveFeatureParamsr         DI&&	r/   r   c                   $    e Zd ZU eee      ed<   y)Product.RetrieveParamsr?   Nr   r.   r/   r0   RetrieveParamsr     r   r/   r   c                   T    e Zd ZU eee      ed<   	 ee   ed<   	 ee   ed<   	 eed<   y)Product.SearchParamsr?   r   pagequeryN)r)   r*   r+   r   r   r,   r-   rh   r.   r/   r0   SearchParamsr     sF    DI&&	 3	 #	 
	r/   r   rC   r   r   r   rF   rG   rH   livemoderJ   rK   r(   objectrM   rN   rO   r    rP   rQ   rT   rU   updatedrV   TdeletedparamsrB   returnc                 Z    t        d| j                  d| j                         |            S )/
        Creates a new product object.
        r#   postr   )r   _static_request	class_urlclsr   s     r0   createzProduct.createb  s6    
    
 	
r/   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)r   r#   r   r   N)r   _static_request_asyncr   r   s     r0   create_asynczProduct.create_asyncp  sD      ++ ,  
 	
s   ,97
	9sidr   c                 z    | j                         dt        |      }t        d| j                  d||            S )
        Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it.
        /r#   deleter   r   r   r   r   r   r   r   rV   s       r0   _cls_deletezProduct._cls_delete  sE     +c*:;   
 	
r/   c                      yr   Nr.   r   r   s     r0   r   zProduct.delete  s     	r/   c                      yr   r.   selfr   s     r0   r   zProduct.delete  s    
 	r/   r   c                 F    | j                  d| j                         |      S )r   r   r   )_request_and_refreshinstance_urlr   s     r0   r   zProduct.delete  s.     (( ) 
 	
r/   c                    K   | j                         dt        |      }t        d| j                  d||       d{         S 7 w)r   r   r#   r   r   Nr   r   r   r   r   s       r0   _cls_delete_asynczProduct._cls_delete_async  sS      +c*:;++ ,  
 	
   <A	A
	A	c                    K   ywr   r.   r   s     r0   delete_asynczProduct.delete_async  s      	   c                    K   ywr   r.   r   s     r0   r   zProduct.delete_async  s      	r   r   c                 b   K   | j                  d| j                         |       d{   S 7 w)r   r   r   N)_request_and_refresh_asyncr   r   s     r0   r   zProduct.delete_async  s<      44 5 
 
 	
 
s   &/-/r   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S )
        Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first.
        getr   %Expected list object from API, got %s)r   r   
isinstancer   	TypeErrorrT   r)   r   r   results      r0   listzProduct.list  s]     $$MMO % 

 &*-7<((* 
 r/   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)r   r   r   Nr   )r   r   r   r   r   rT   r)   r   s      r0   
list_asynczProduct.list_async  sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"r   c                 z    | j                         dt        |      }t        d| j                  d||            S )
        Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        r   r#   r   r   r   r   rG   r   rV   s       r0   modifyzProduct.modify  sD     +b/:   
 	
r/   c                    K   | j                         dt        |      }t        d| j                  d||       d{         S 7 w)r   r   r#   r   r   Nr   r   s       r0   modify_asynczProduct.modify_async  sR      +b/:++ ,  
 	
r   r   c                 8     | |fi |}|j                          |S )
        Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Stripe will return the corresponding product information.
        )refreshr   rG   r   instances       r0   retrievezProduct.retrieve*  s$     r$V$r/   c                 T   K    | |fi |}|j                          d{    |S 7 w)r   N)refresh_asyncr   s       r0   retrieve_asynczProduct.retrieve_async5  s3      r$V$$$&&& 	's   (&(kwargsr   c                 *     | j                   |ddi|S )  
        Search for products you've previously created using Stripe's [Search Query Language](https://stripe.com/docs/search#search-query-language).
        Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating
        conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up
        to an hour behind during outages. Search functionality is not available to merchants in India.
        
search_url/v1/products/search)_searchr   argsr  s      r0   searchzProduct.search@  s      s{{dM&;MfMMr/   c                 F   K    | j                   |ddi| d{   S 7 w)r  r  r  N)_search_asyncr
  s      r0   search_asynczProduct.search_asyncL  s:      'S&&/3
,
7=
 
 	
 
s   !!c                 B     | j                   |i |j                         S N)r  auto_paging_iterr
  s      r0   search_auto_paging_iterzProduct.search_auto_paging_iterZ  s#     szz4*6*;;==r/   c                 ^   K    | j                   |i | d {   j                         S 7 wr  )r  r  r
  s      r0   search_auto_paging_iter_asyncz%Product.search_auto_paging_iter_async`  s/      'c&&777IIKK7s   -+-r   r   c                     t        d| j                  ddj                  t        |      t        |            |            S )=
        Deletes the feature attachment to a product
        r   r   $/v1/products/{product}/features/{id}r$   rG   r   r   r   formatr   r   r$   rG   r   s       r0   delete_featurezProduct.delete_featuref  sP     6=='0[_ >     	
 		
r/   c                    K   t        d| j                  ddj                  t        |      t        |            |       d{         S 7 w)r  r   r   r  r  r   Nr   r   r  r   r  s       r0   delete_feature_asynczProduct.delete_feature_async{  s^      ++6=='0[_ >   ,  	
 		
   AAA
	Ar   c                 ~    t        t        d   | j                  ddj                  t	        |            |            S );
        Retrieve a list of features for a product
        r   r   /v1/products/{product}/featuresr$   r   )r   r   r   r  r   r   r$   r   s      r0   list_featureszProduct.list_features  sP     '(188'0 9     	
 		
r/   c                    K   t        t        d   | j                  ddj                  t	        |            |       d{         S 7 w)r#  r   r   r$  r%  r   N)r   r   r   r  r   r&  s      r0   list_features_asynczProduct.list_features_async  s^      '(++188'0 9   ,  	
 		
s   >A A	
	Ar=   c                 p    t        d| j                  ddj                  t        |            |            S )_
        Creates a product_feature, which represents a feature attachment to a product
        r   r   r$  r%  r   r  r&  s      r0   create_featurezProduct.create_feature  sJ     188'0 9     	
 		
r/   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r+  r   r   r$  r%  r   Nr  r&  s      r0   create_feature_asynczProduct.create_feature_async  sX      ++188'0 9   ,  	
 		
s   7AA
	Ar   c                     t        d| j                  ddj                  t        |      t        |            |            S )a
        Retrieves a product_feature, which represents a feature attachment to a product
        r   r   r  r  r   r  r  s       r0   retrieve_featurezProduct.retrieve_feature  sP     6=='0[_ >     	
 		
r/   c                    K   t        d| j                  ddj                  t        |      t        |            |       d{         S 7 w)r0  r   r   r  r  r   Nr  r  s       r0   retrieve_feature_asynczProduct.retrieve_feature_async  s^      ++6=='0[_ >   ,  	
 		
r!  )rJ   rM   N)Kr)   r*   r+   __doc__r%   r   r   r-   r   r1   r:   r	   r@   rX   r   ri   rn   ru   r{   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rW   rh   r   r   r,   r   r   classmethodr   r   r   r   r   staticmethodr   r   r   r   r   r   r   r   r   r   r  r
   r  r  r   r  r   r  r  r   r'  r)  r,  r.  r1  r3  _inner_class_typesr.   r/   r0   r#   r#   (   s3   	 1:K'),-9< L $n G~ GR"y "Hi 8() ,y $	 y 	 $n ~ ^ $(^ (TI $?~ ?By 	 $  ~ $ L L OG455 # 	G I N -.. 38n I I !!233 ~ #3-' y122 #
$$  L 
# gdm$$ 
f%;< 
 
 
 
45
	
 
 

!'(>!?
	
 
  "#9:	   v&<= )   -(

56

	

 )

 

!'(>!?
	
 
  "#9:	   56	  -.

56

	

 /

 23	I	 & 23	I	 & 

 &'= >
	
 
  

 &'= >
	
 
   &'? @	   &'? @	  	N$%;<	N	I	&	N 	N 
$%;<
	I	&
 
 >$%;<>	)	> >
 L$%;<L	y	!L L
 

 
 67	

 

 
( 

 
 67	

 

 
( 

%+,H%I
	$	%
 
" 

%+,H%I
	$	%
 
" 

%+,I%J
	
 
" 

%+,I%J
	
 
" 

 
 89	

 

 
( 

 
 89	

 

 
* //r/   r#   N)0stripe._createable_api_resourcer   stripe._deletable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   %stripe._nested_resource_class_methodsr   stripe._request_optionsr	   stripe._search_result_objectr
   stripe._searchable_api_resourcer   stripe._stripe_objectr   stripe._updateable_api_resourcer   stripe._utilr   r   typingr   r   r   r   r   r   r   r   r   typing_extensionsr   r   r   r   r   stripe._pricer   stripe._product_featurer   stripe._tax_coder    r#   r.   r/   r0   <module>rI     s    B ? 4 * = O 2 ; A . A :
 
 
  #6( y)\)$#	")$)$\ *\r/   