
    k)i                     D   d Z ddlmZmZ ddlmZmZ  G d de      Z G d dee      Z	 G d d	ee      Z
 G d
 dee      Z G d de      Z G d dee      Z G d dee      Z G d dee      Z G d dee      Z G d dee      Z G d dee      Z G d dee      Zy)z
Payment Request specific enums.

This module contains all enums specific to the payment requests functionality,
moved from core.utils.enums for better modularity and organization.
    )EnumIntEnum)AnyDictc                   H    e Zd Zed        ZdefdZedeee	f   fd       Z
y)WellDocumentedIntEnumc                      ||      }t        | d      rVi }| D ]D  }|j                  }|j                  }|| j                  v s*| j                  |   |t	        |      <   F |r	d|v r||d<   |S )z3Generate JSON schema for Pydantic v2 compatibility._descriptionsenumenumDescriptions)hasattrnamevaluer
   str)cls_core_schemahandlerjson_schemadescriptionsmembermember_namemember_values           ]/var/www/html/hwPaymentPortal-be-dev/hw-payment-portal-api/src/apps/payment_requests/enums.py__get_pydantic_json_schema__z2WellDocumentedIntEnum.__get_pydantic_json_schema__   s     l+ 3(L U$kk%||#"3"33696G6G6TL\!23	U [(6BK 23    returnc                     | j                   S )N)r   )selfs    r   __int__zWellDocumentedIntEnum.__int__!   s    zzr   c                 V    | D ci c]  }|j                   |j                   c}S c c}w )z2Return a dictionary of enum name -> value mappings)r   r   )r   r   s     r   listzWellDocumentedIntEnum.list$   s%     9<<fV\\)<<<s   &N)__name__
__module____qualname__classmethodr   intr   r   r   r   r!    r   r   r   r      sC     &  =T#s(^ = =r   r   c                   D    e Zd Zd ZdZdZdZdZdZdZ	dZ
dZd	Zd
ZdZdZdZy)PaymentCurrenciesaudcaddkkeurhkdjpynzdnokgbpzarsekchfusdN)r"   r#   r$   __doc__AUDCADDKKEURHKDJPYNZDNOKGBPZARSEKCHFUSDr'   r   r   r)   r)   *   sF    
C
C
C
C
C
C
C
C
C
C
C
C
Cr   r)   c                       e Zd ZdZdZdZdZy)PaymentFrequenciesMessage Statussplit	recurringone_timeN)r"   r#   r$   r7   SPLIT	RECURRINGONE_TIMEr'   r   r   rF   rF   <   s    EIHr   rF   c                       e Zd ZdZdZdZy)PaymentAuthorizationTypesrG   pre_authrequest_authN)r"   r#   r$   r7   PRE_AUTHREQUEST_AUTHr'   r   r   rO   rO   D   s    H!Lr   rO   c                   `    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZy)PaymentRequestStatusTypeszPayment Request Statusd   e   f                  i,  i  i  i  i  iX  iY  iZ  i  i  i   i  N)r"   r#   r$   r7   CREATEDUPDATEDDRAFTWAITINGUPCOMINGRETRYINGAWAITING_APPROVALCAPTURED
AUTHORISED
PROCESSINGPAIDPARTIALLY_PAIDSTALLEDFAILEDOVERDUEUNCOLLECTIBLE	CANCELLEDDECLINEDREFUNDEDEXPIREDr'   r   r   rU   rU   K   sj     GGEGHHHJJDNGFGMIHHGr   rU   c                       e Zd ZdZdZdZy)SplitPaymentTypesrG   
percentageamountNr"   r#   r$   r7   
PERCENTAGEAMOUNTr'   r   r   rs   rs   d       JFr   rs   c                       e Zd ZdZdZdZy)DiscountTypesrG   rt   ru   Nrv   r'   r   r   r{   r{   k   ry   r   r{   c                       e Zd ZdZdZdZdZy)TaxTypezTax Type Inclusive/Exclusivetax_exclusivetax_inclusivenotaxN)r"   r#   r$   r7   	EXCLUSIVE	INCLUSIVENOTAXr'   r   r   r}   r}   r   s    &IIEr   r}   c                       e Zd ZdZdZdZy)SurchargeTypesrG   	exclusive	inclusiveN)r"   r#   r$   r7   r   r   r'   r   r   r   r   z   s    IIr   r   c                   $    e Zd ZdZdZdZdZdZdZy)RecurringPaymentIntervalsrG   dayweekmonthquarteryearN)	r"   r#   r$   r7   DAYWEEKMONTHQUARTERYEARr'   r   r   r   r      s    
CDEGDr   r   c                        e Zd ZdZdZdZdZdZy)RecurringPaymentEndTypesrG   dateuntil_countuntil_cancelledneverN)r"   r#   r$   r7   DATEUNTIL_COUNTUNTIL_CANCELLEDNEVERr'   r   r   r   r      s    DK'OEr   r   c                   (    e Zd Zd ZdZdZdZdZdZdZ	y)RecurringPaymentRepeatTypeson_date	on_periodday_of_monthtime_of_monthintervalcustom_intervalN)
r"   r#   r$   r7   ON_DATE	ON_PERIODDAY_OF_MONTHTIME_OF_MONTHINTERVALCUSTOM_INTERVALr'   r   r   r   r      s#    %GI!L#MH'Or   r   N)r7   r   r   r   typingr   r   r   r   r)   rF   rO   rU   rs   r{   r}   r   r   r   r   r'   r   r   <module>r      s     =G =<T $d "T " 5 2T C c4 S$ T sD (#t (r   