
    >h                         S SK JrJrJrJr  S SKJrJr  S SKJ	r	   " S S\5      r
 " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      rg)    )	BaseModelFieldHttpUrlfield_validator)OptionalLiteral)datec                       \ rS rSr% \" SSS9r\\S'   \" SSS9r\\S'   \" SS	S9r	\
\   \S
'   \" SSS9r\\S'   \" SSS9r\\S'   \" SSS9r\\S'   Srg)PlanOverview   .z/Name of the subscription plan, e.g., 'Pro Plan'description	plan_namez5Internal identifier for the plan, e.g., 'plan_ABC123'plan_idNz Optional description of the planplan_descriptionz%Start date of the subscription period
start_datez#End date of the subscription periodend_datez/Flag indicating if the plan is currently active	is_active )__name__
__module____qualname____firstlineno__r   r   str__annotations__r   r   r   r   r	   r   r   bool__static_attributes__r       QC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\models\platform\subscription.pyr   r      ss    3,]^Is^*abGSb&+D>`&ahsmaS.UVJV3,QRHdRC-^_It_r   r   c                   v    \ rS rSr% \" SSS9r\\S'   \" SSS9r\\S'   \" SSS9r	\\S	'   \" SS
S9r
\\S'   Srg)UsageLimits   .zMaximum number of users allowedr   	max_usersz!Maximum number of devices allowedmax_devicesz#Maximum number of geofences allowedmax_geofencesz'Maximum number of tasks allowed per daymax_tasks_per_dayr   N)r   r   r   r   r   r#   intr   r$   r%   r&   r   r   r   r   r!   r!      sK    3,MNIsNS.QRKRs0UVM3V"34]^s^r   r!   c                   d    \ rS rSr% \" SSS9r\\S'   \" SSS9r\	S   \S'   \" SS	S9r
\\S
'   Srg)RenewalPreferences   .z$Whether the subscription auto-renewsr   auto_renewalzCycle of renewal)monthlyyearly	quarterlyrenewal_cyclez+Days before expiry to send renewal reminderreminder_daysr   N)r   r   r   r   r   r+   r   r   r/   r   r0   r'   r   r   r   r   r)   r)      s>    s0VWL$W?DSVh?iM7;<is0]^M3^r   r)   c                       \ rS rSr% \" SSS9r\\   \S'   \" SSS9r	\\
   \S'   \" SSS9r\\
   \S	'   \" SS
S9r\\   \S'   \" SS	SS9S 5       r\" SSS9S 5       rSrg)InvoiceInfo   NzID of the last invoicer   last_invoice_idzDate of the last invoicelast_invoice_datezExpected date for next invoicenext_invoice_datez URL to download the last invoicedownload_invoice_urlbefore)modec                     U=(       d    S $ Nr   clsvs     r   validate_optional_date"InvoiceInfo.validate_optional_date"       yDr   c                     U=(       d    S $ r;   r   r<   s     r   validate_optional_url!InvoiceInfo.validate_optional_url&   rA   r   r   )r   r   r   r   r   r4   r   r   r   r5   r	   r6   r7   r   r   r?   rC   r   r   r   r   r2   r2      s    %*4=U%VOXc]V(-d@Z([x~[(-d@`(ax~a.3DFh.i(7+i(*=HM N +(; <r   r2   c                       \ rS rSr% \" SSS9r\\S'   \" S5      r\	\   \S'   \" S5      r
\	\   \S'   \" S5      r\	\   \S	'   \" S5      r\	\   \S
'   \" S5      S 5       rSrg)PaymentMode+   .zMode of paymentr   payment_modeNstripe_customer_idbank_account_name	bank_iban	bank_namec                 6    US:X  a  gUS;  a  [        S5      eU$ )Nbankbank_transfer)striperO   z0payment_mode must be 'stripe' or 'bank_transfer')
ValueError)r=   values     r   validate_payment_mode!PaymentMode.validate_payment_mode2   s&    F?"33OPPr   r   )r   r   r   r   r   rH   r   r   rI   r   rJ   rK   rL   r   rS   r   r   r   r   rF   rF   +   su    c/@AL#A(-d3',T{x}2$T{Ix}*$T{Ix}*^$ %r   rF   c                       \ rS rSr% \" SSS9r\\S'   \" SSS9r\	\S'   \" SSS9r
\\S	'   \" SS
S9r\\S'   \" SSS9r\\S'   Srg)SubscriptionSettings;   .z#Details about the subscription planr   plan_overviewz Limits related to resource usageusage_limitszSettings for auto-renewalrenewal_preferenceszInvoice-related informationinvoice_infozPayment method detailspaymentr   N)r   r   r   r   r   rX   r   r   rY   r!   rZ   r)   r[   r2   r\   rF   r   r   r   r   rV   rV   ;   s^    "'9^"_M<_ %c7Y ZL+Z.3CE`.a+a %c7T UL+U 2JKG[Kr   rV   N)pydanticr   r   r   r   typingr   r   datetimer	   r   r!   r)   r2   rF   rV   r   r   r   <module>r`      sa    ? ? $ `9 `_) __ _) )  L9 Lr   