
    )ir)                        d Z ddlmZ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mZmZmZmZm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y)z#
Payment Request response schemas.
    )ListOptionalAnyDict)datetime)	BaseModelField)
BaseSchema)PaymentCurrenciesPaymentFrequenciesPaymentAuthorizationTypesPaymentRequestStatusTypesSurchargeTypesTaxTypec                      e Zd ZU dZ ed      Zeed<    ed      Ze	ed<    edd      Z
ee	   ed	<    ed
      Zeed<    ed      Zeed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<   y)$PaymentRequestLineItemResponseSchemaz.Response schema for payment request line itemszLine item IDdescriptionidzTitle of line itemtitleNzDescription of line itemr   zUnit price of item
unit_pricezQuantity of itemsquantityzTax for itemtaxzCalculated tax amount
tax_amountzProduct ID reference
product_idzCost of itemcostzUpcharge amountupchargezDiscount amountdiscountCreation timestamp
created_atLast update timestamp
updated_at)__name__
__module____qualname____doc__r	   r   int__annotations__r   strr   r   r   floatr   r   r   r   r   r   r   r    r   r"        i/var/www/html/hwPaymentPortal-be-dev/hw-payment-portal-api/src/apps/payment_requests/schemas/responses.pyr   r      s
   8/B/#78E38!&t8R!SK#S*>?J?&9:Hc: .AC%A"'9P"QJQ %d7M NJN!$>BD(5/B %d7H IHhuoI %d7H IHhuoI%*4<P%QJ"Q%*4<S%TJ"Tr,   r   c                   "   e Zd ZU dZ ed      Zee   ed<    ed      Z	ee   ed<    ed      Z
ee   ed<    ed	      Zee   ed
<    ed      Zee   ed<    ed      Zee   ed<    ed      Zee   ed<    ed      Zee   ed<   y)$PaymentRequestCustomerResponseSchemaz4Response schema for payment request customer detailszPayer IDr   payer_idzApprover IDapprover_idzPayer email request enabledpayer_email_request_enabledzPayer email receipt enabledpayer_email_receipt_enabledzPayer SMS request enabledpayer_sms_request_enabledzPayer SMS receipt enabledpayer_sms_receipt_enabledzApprover email receipt enabledapprover_email_receipt_enabledzApprover SMS receipt enabledapprover_sms_receipt_enabledN)r#   r$   r%   r&   r	   r0   r   r'   r(   r1   r2   boolr3   r4   r5   r6   r7   r+   r,   r-   r/   r/   &   s    >#
;Hhsm;!&=!AK#A27Da2b$b27Da2b$b05B]0^x~^05B]0^x~^5:Gg5h"HTNh38Ec3d (4.dr,   r/   c                       e Zd ZU dZ ed      Zeed<    ed      Ze	ed<    ed      Z
e	ed<    ed	      Ze	ed
<    ed      Ze	ed<   y)UserResponseSchemaz$Response schema for user informationzUser IDr   r   zUnique user identifieruser_idzUser first name
first_namezUser last name	last_namezUser email addressemailN)r#   r$   r%   r&   r	   r   r'   r(   r;   r)   r<   r=   r>   r+   r,   r-   r:   r:   3   sT    .	*B*%=>GS>(9:J:'78Is8#78E38r,   r:   c                       e Zd ZU dZ ed      Zeed<    ed      Zeed<    ed      Z	e
ed<    ed	      Zeed
<    ed      Zee   ed<    ed      Zeed<    ed      Zeed<    ed      Zee   ed<    ed      Zee   ed<   y)SplitPaymentResponseSchemaz/Response schema for split payment configurationzSplit payment IDr   r   zSequence number of splitsequencez!Type of split (percentage/amount)
split_typezValue of splitsplit_valuezCalculated due amount
due_amountzBilling date for splitbilling_datezDue date for splitdue_datezDate when split was paid	paid_dater   r    N)r#   r$   r%   r&   r	   r   r'   r(   rA   rB   r)   rC   r*   rD   r   rE   r   rF   rG   r    r+   r,   r-   r@   r@   =   s    9 23B3&@AHcA(KLJL+;<K<"'4K"LJL"/GHL(H+?@Hh@$)6P$QIx!Q%*7K%LJ"Lr,   r@   c                      e Zd ZU dZ ed      Zeed<    ed      Ze	e
   ed<    ed      Ze	e   ed<    ed	      Zeed
<    ed      Zeed<    ed      Zeed<    ed      Ze	e   ed<    ed      Zeed<    ed      Ze	e   ed<    ed      Ze	e   ed<    ed      Ze	e   ed<    ed      Ze	e   ed<    ed      Ze	e   ed<   y)RecurringPaymentResponseSchemaz3Response schema for recurring payment configurationzRecurring payment IDr   r   zProrate first paymentprorate_first_paymentzProrate dateprorate_datez!Start date for recurring payments
start_datezRepeat typerepeat_typezInterval typeintervalzInterval valueinterval_valuezEnd typeend_typezEnd dateend_datezPay until countpay_until_countzNext due datenext_due_datezNext due amountnext_due_amountr   r    N)r#   r$   r%   r&   r	   r   r'   r(   rJ   r   r8   rK   r   rL   rM   r)   rN   rO   rP   rQ   rR   rS   rT   r*   r    r+   r,   r-   rI   rI   K   s    = 67B7,1>U,V8D>V','HL(8$H -PQJQ7K7o6Hc6$)6F$GNHSMGj1Hc1#(Z#@Hhx @%*7H%IOXc]I(-/(JM8H%J',9J'KOXe_K%*7K%LJ"Lr,   rI   c                      e Zd ZU dZ ed      Zeed<    ed      Ze	ed<    ed      Z
eed<    ed	      Zeed
<    ed      Zeed<    edd      Zee   ed<    ed      Zeed<    edd      Zee	   ed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<    edd      Zee   ed<    edd       Zee   ed!<    edd"      Zee   ed#<    edd$      Z ee   ed%<    edd&      Z!ee   ed'<    edd(      Z"ee   ed)<    edd*      Z#ee   ed+<    edd,      Z$ee   ed-<    edd.      Z%ee   ed/<    edd0      Z&ee   ed1<    edd2      Z'ee   ed3<    edd4      Z(ee)   ed5<    edd6      Z*ee+   ed7<    edd8      Z,ee   ed9<    edd:      Z-ee	   ed;<    edd<      Z.ee	   ed=<    edd>      Z/ee	   ed?<    edd@      Z0ee	   edA<    eddB      Z1ee   edC<    eddD      Z2ee   edE<    eddF      Z3ee	   edG<    eddH      Z4ee5e6      edI<    eddJ      Z7ee5e8      edK<    eddL      Z9ee:   edM<    eddN      Z;ee5e<      edO<    eddP      Z=ee>   edQ<    edR      Z?ee   edS<    edT      Z@ee   edU<    eddV      ZAee   edW<    G dX dY      ZBy)ZPaymentRequestResponseSchemaz#Response schema for payment requestzPayment request internal IDr   r   z!Unique payment request identifierpayment_request_idzPayment amountamountzPayment currencycurrencyzPayment frequencypayment_frequencyNzAuthorization typeauthorization_typezPayment request statusstatuszReference number	referencezDue daterF   zBilling daterE   zSave payment methodsave_payment_methodz
Allow tips	allow_tipzConfigure adjustmentconfigure_adjustmentzSurcharge enabledis_surcharge_enabledzRequire billing addressrequire_billing_addresszRequire SMS authorizationrequire_sms_authorizationzRequire shipping addressrequire_shipping_addresszRequire signature authorizationrequire_signature_authorizationzRequire CVVrequire_cvvzIs certifiedis_certifiedzEnable email notificationsenable_emailzEnable SMS notifications
enable_smszEnable email receiptenable_email_receiptzEnable SMS receiptenable_sms_receiptzSurcharge typesurcharge_typezTax typetax_typezTax percentagetax_percentzPayment messagemessagezPayment descriptionr   zPayment split frequencypayment_split_frequencyzPayment redirect URLpayment_redirect_urlzShipping feeshipping_feezShipping address IDshipping_address_idzInvoice termsinvoice_termsz
Line items
line_itemszCustomer detailspayment_request_customerszCreated by user
created_byzSplit configurationsplit_configzRecurring configurationrecurring_configr   r    r!   r"   zDeletion timestamp
deleted_atc            
           e Zd ZdZdi ddddddd	d
ddddddddddddddddddddddddddddd d!gd"dd#d$d%d&d'iZy())#PaymentRequestResponseSchema.ConfigSchema configurationexampler      rW   pr_1234567890abcdefrX   g      Y@rY   usdrZ   one_timer[   request_authr\   full_amount_pendingr]   REF001rF   z 2021-10-25T19:29:17.454292+00:00rE   r^   Fr_   r`   ro   zPayment for servicesr    ru   zService FeezMonthly service feeg        )r   r   r   r   r   r   rw   usr_1234567890JohnDoezjohn.doe@example.com)r   r;   r<   r=   r>   Nr#   r$   r%   r&   json_schema_extrar+   r,   r-   Configr|      s   " !a!$&;! %! E	!
 $Z! %n! /! X! >!  B! &u! U! '! 1! @!  !.'<&+$%"	!!4 /"(!&35!#
r,   r   )Cr#   r$   r%   r&   r	   r   r'   r(   rW   r)   rX   r*   rY   r   rZ   r   r[   r   r   r\   r   r]   rF   r   rE   r^   r8   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   r   rm   r   rn   ro   r   rp   rq   rr   rs   rt   ru   r   r   rv   r/   rw   r:   rx   r@   ry   rI   r    r"   rz   r   r+   r,   r-   rV   rV   ]   s   - =>B>#0STT&67FE7"'4F"GHG,1>Q,R)R>CDVj>k!:;k(-:R(SF%S$T7IJIx}J#(*#EHhx E',Tn'ML(8$M +0AV*W$W %d| DIx~D+0BX+Y(4.Y+0BU+V(4.V.3DE^._Xd^_05dGb0cx~c/4TF`/ahtna6;DMn6o#Xd^o"'"GK$G#(.#IL(4.I#(:V#WL(4.W!&t8R!SJS+0BX+Y(4.Y).t@T)UU 05TFV/WNH^,W"'"DHhwD#(:J#KK%K"44EFGXc]F!&t8M!NK#N-24D]-^Xc]^*/AW*X(3-X$)$>$JL(5/J).t@U)V#V#(/#JM8C=J HMT^jGkJBCDkV[\`m  WAx-Q(RS  A/4TFW/XJ+,X?DTVk?lL(4 :;<lAFtXqArh=>r &+7K%LJ"L%*7N%OJ"O%*4<P%QJ"Q%
 %
r,   rV   c                       e Zd ZU dZ ed      Zee   ed<    ed      Z	e
ed<    ed      Ze
ed<    ed	      Ze
ed
<    ed      Ze
ed<    ed      Zeed<    ed      Zeed<    G d d      Zy) PaymentRequestListResponseSchemaz(Response schema for payment request listzList of payment requestsr   itemszTotal number of itemstotalzCurrent pagepagezItems per pageper_pagezTotal number of pagestotal_pageszHas next pagehas_nextzHas previous pagehas_previousc            	       (    e Zd ZdZdg dddddddiZy)	'PaymentRequestListResponseSchema.Configr}   r~   r   r      F)r   r   r   r   r   r   r   Nr   r+   r,   r-   r   r      s*    " ! %

r,   r   N)r#   r$   r%   r&   r	   r   r   rV   r(   r   r'   r   r   r   r   r8   r   r   r+   r,   r-   r   r      s    205B\0]E4,-]#:;E3;.1D#1&67Hc7)@AKA7Hd7+>?L$?
 
r,   r   N)r&   typingr   r   r   r   r   pydanticr   r	   src.apps.base.schemas.commonr
   src.apps.payment_requests.enumsr   r   r   r   r   r   r   r/   r:   r@   rI   rV   r   r+   r,   r-   <module>r      s    - ,  % 3 U: U$
e: 
e9 9M MMZ M$[
: [
|
y 
r,   