o
    xhé                    @   sv  d dl mZ d dlT d dlT d dlZdZdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Z G d;d< d<ej!Z"G d=d> d>ej#Z$G d?d@ d@ej#Z%G dAdB dBej#Z&G dCdD dDej#Z'G dEdF dFej#Z(G dGdH dHej#Z)G dIdJ dJej#Z*G dKdL dLej#Z+G dMdN dNej#Z,G dOdP dPej#Z-G dQdR dRej#Z.G dSdT dTej#Z/G dUdV dVej#Z0G dWdX dXej#Z1G dYdZ dZej#Z2G d[d\ d\ej#Z3G d]d^ d^ej#Z4G d_d` d`ej#Z5G dadb dbej#Z6G dcdd ddej#Z7G dedf dfej#Z8G dgdh dhej#Z9G didj djej#Z:G dkdl dlej#Z;G dmdn dnej#Z<G dodp dpej#Z=G dqdr drej#Z>G dsdt dtej#Z?G dudv dvej#Z@G dwdx dxej#ZAG dydz dzej#ZBG d{d| d|ej#ZCG d}d~ d~ej#ZDG dd dej#ZEG dd dej#ZFG dd dej#ZGG dd dej#ZHG dd dej#ZIG dd dej#ZJG dd dej#ZKG dd dej#ZLG dd dej#ZMG dd dej#ZNG dd dej#ZOG dd dej#ZPG dd dej#ZQG dd dej#ZRG dd dej#ZSG dd dej#ZTG dd dej#ZUG dd dej#ZVG dd dej#ZWG dd dej#ZXG dd dej#ZYG dd dej#ZZG dd dej#Z[G dd dej#Z\G dd dej#Z]G dd dej#Z^G dd dej#Z_G dd dej#Z`G dd dej#ZaG dd dej#ZbG dd dej#ZcG dd dej#ZdG dd dej#ZeG dd dej#ZfG ddĄ dej#ZgG ddƄ dej#ZhG ddȄ dej#ZiG ddʄ dej#ZjG dd̄ dej#ZkG dd΄ dej#ZlG ddЄ dej#ZmG dd҄ dej#ZnG ddԄ dej#ZoG ddք dej#ZpG dd؄ dej#ZqG ddڄ dej#ZrG dd܄ dej#ZsG ddބ dej#ZtG dd dej#ZuG dd dej#ZvG dd dej#ZwG dd dej#ZxG dd dej#ZyG dd dej#ZzG dd dej#Z{G dd dej#Z|G dd dej#Z}G dd dej#Z~G dd dej#ZG dd dej#ZG dd dej#ZG dd dej#ZG dd dej#ZG dd dej#ZG dd  d ej#ZG dd dej#ZG dd dej#ZG dd dej#ZG dd dej#ZG d	d
 d
ej#ZdS (      )serializers)*N
languageIdc                 C   sb   | j dr| j d jtd }n| j tr| j t }nd }|d ur/tjj|d}|jr/|S d S )Nrequestid)context__contains__query_paramsgetlanguageKeyLanguageobjects	isEnabled)selfr   selectedLanguage r   j/Users/waleedhassanin/Documents/GitHub/snow_flake_back_end_deploy/snow_flake_api/snow_flake/serializers.pygetLanguage
   s   r   c                 C   F   | j dr| j d jdd }|S | j dr| j d }|S d }|S )Nr   isDashboardr   r	   r
   r   )r   r   r   r   r   getIsDashboard      
r   c                 C   sB   d }| j dr| j d jdd }|S | j dr| j d }|S )Nr   clientIdr   )r   r   r   r   r   getClientId$   s   
r   c                 C   r   )Nr   isShowFeatureBulletr   )r   r   r   r   r   getIsShowFeatureBullet-      
r   c                 C   r   )Nr   isMultipleSKUr   )r   r   r   r   r   getIsMultipleSKU9   r   r    c                 C   r   )Nr   
isShowItemr   )r   ZisSKUDetailr   r   r   getIsShowItemC   r   r"   c                 C   r   )Nr   isShowRequestReturnDetailr   )r   r#   r   r   r   getIsShowRequestReturnDetailM   r   r$   c                 C   r   )Nr   isShowShippingItemDetailr   )r   r%   r   r   r   getIsShowShippingItemDetailY   r   r&   c                 C   sH   t | }d}|d urtjjt|jdjt|d }|dkr"dS dS )Nr   itemIdr   TF)r   Favoriter   filterstrr   count)r   instancer   valr   r   r   getIsFavoriteWithCurrentCliente   s   r0   c                 C   r   )Nr   isShowCountryr   )r   r1   r   r   r   getIsShowCountrys   r   r2   c                 C   r   )Nr   isShowShippingMethodr   )r   r3   r   r   r   getIsShowShippingMethod}   r   r4   c                 C   r   )Nr   isShowDeliveryManr   )r   r5   r   r   r   getIsShowDeliveryMan   r   r6   c           	      C   s   |d urC| |j  d }| |j d }| |j d }|| | |  |j d }|| | | |j |  }||j d }|| }||jfS d S )Nd   )serviceCosthandlingCostpackingCosttaxCosttransactionFixedCosttransactionFeeCostr   )	priceskuCostr8   r9   r:   r;   totalr=   Zoverallr   r   r   calculatePrice   s   
rA   c                 C   0   t | }tjjt|jjd}t|t|idj	S Nr   r   )
r   Countryr   r   r,   	countryIdr   CountrySerializerr   data)r   r.   r   countryr   r   r   
getCountry      rJ   c                 C   >   t | }|jd urtjjt|jjd}t|t|idj	S d S rC   )
r   stateIdStater   r   r,   r   StateSerializerr   rH   r   r.   r   stater   r   r   getState      
rR   c                 C   rL   rC   )
r   cityIdCityr   r   r,   r   CitySerializerr   rH   rP   r   r   r   getCity   rS   rW   c                 C       t jjt|jjd}t|jS Nr   )ShippingMethodr   r   r,   shippingMethodIdr   ShippingMethodSerializerrH   )r   r.   shippingMethodr   r   r   getShippingMethod      
r^   c                 C   rX   rY   )DeliveryManr   r   r,   deliveryManIdr   DeliveryManSerializerrH   )r   r.   ZdeliveryManr   r   r   getDeliveryMan   r_   rc   c                 C   rB   rC   )
r   
Departmentr   r   r,   departmentIdr   DepartmentSerializerr   rH   )r   r.   r   
departmentr   r   r   getDepartment      rh   c                 C   rB   rC   )
r   TransactionTyper   r   r,   transactionTypeIdr   TransactionTypeSerializerr   rH   )r   r.   r   transactionTyper   r   r   getTransactionType   ri   rn   c                 C   rB   rC   )
r   PaymentMethodr   r   r,   paymentMethodIdr   PaymentMethodSerializerr   rH   )r   r.   r   paymentMethodr   r   r   getPaymentMethod   ri   rs   c                 C   rB   rC   )
r   SubscriptionStatusr   r   r,   subscriptionStatusIdr   SubscriptionStatusSerializerr   rH   )r   r.   r   subscriptionStatusr   r   r   getSubscriptionStatus      
rx   c                 C   rB   rC   )
r   SubscriptionTyper   r   r,   subscriptionTypeIdr   SubscriptionTypeSerializerr   rH   )r   r.   r   subscriptionTyper   r   r   getSubscriptionType   ry   r~   c                 C   rB   rC   )
r   ReturnStatusr   r   r,   returnStatusIdr   ReturnStatusSerializerr   rH   )r   r.   r   returnStatusr   r   r   getReturnStatus   rK   r   c              
   C   sP   t | }t| }t| }t| }tjj|jjd}t	|d|t
|d|d|idjS )Nr   r   r   r!   rD   )r   r   r   r"   SKUr   r   skuIdr   SKUSerializerr   rH   )r   r.   r   r   r   r!   skur   r   r   getSKU   s   r   c                 C   rB   rC   )
r   Clientr   r   r,   r   r   ClientDisplaySerializerr   rH   )r   r.   r   clientr   r   r   	getClient  rK   r   c                 C   rX   rY   )Supplierr   r   r,   
supplierIdr   SupplierDisplaySerializerrH   )r   r.   supplierr   r   r   getSupplierInfo  r_   r   c                   @   st   e Zd Ze Ze Ze Ze Z	e Z
e Ze Ze Ze Ze Ze Ze Ze ZdS )DashboardDataSerializerN)__name__
__module____qualname__r   IntegerField
countItems
FloatFieldsumPaymentTotalsumPaymentPaidsumPaymentChangecountTransactionInsumTransactionInTotalsumTransactionInPaidcountTransactionOutsumTransactionOutTotalsumTransactionOutPaidcurrentBalanceTotalcurrentBalancePaidcurrentSumTaxesr   r   r   r   r     s    r   c                   @      e Zd ZG dd dZdS )SettingsSerializerc                   @      e Zd ZeZg dZdS )zSettingsSerializer.Meta)r   isMaintenanceClientisMaintenanceSupplier#isEnableFreeSubscriptionForSupplieritemSKULimititemSKUOptionLimititemFeatureBulletLimitmaxCartQuantityisEnableStoreBankCardsisShowBrandsisInitialSettingsDonecreatedDateupdatedDateN)r   r   r   Settingsmodelfieldsr   r   r   r   Meta-      r   Nr   r   r   r   r   r   r   r   r   ,      r   c                   @   r   )LanguageSerializerc                   @   r   )zLanguageSerializer.Meta)r   namecountryCoder   languageCoder   r   N)r   r   r   r   r   r   r   r   r   r   r   E  r   r   Nr   r   r   r   r   r   D  r   r   c                   @   *   e Zd Ze ZG dd dZdd ZdS )SocialLinkSerializerc                   @   r   )zSocialLinkSerializer.Meta)r   r   urlr   r   
tokenCountN)r   r   r   
SocialLinkr   r   r   r   r   r   r   X  r   r   c                 C   sL   t | }|d ur$t|tdkr"tjj|jd}| dkr dS dS dS dS )N1)socialLinkIdr      )r   boolSocialLinkTokenr   r+   r   __len__)r   r.   r   ZcurrentListr   r   r   get_tokenCountc  s   z#SocialLinkSerializer.get_tokenCountN)r   r   r   r   SerializerMethodFieldr   r   r   r   r   r   r   r   U      r   c                   @   r   )SocialLinkTokenSerializerc                   @   r   )zSocialLinkTokenSerializer.Meta)r   r   token	longTokentimeInSecondsN)r   r   r   r   r   r   r   r   r   r   r   p  r   r   Nr   r   r   r   r   r   o  r   r   c                   @   :   e Zd Ze Ze ZG dd dZdd Zdd Z	dS )RegisterTypeSerializerc                   @   r   )zRegisterTypeSerializer.Metar   keyNamer   r   r   languageListN)r   r   r   RegisterTyper   r   r   r   r   r   r     r   r   c                 C   J   t | }|d ur!tjjt|jdj|d}| dkr#|d jS d S d S )NregisterTypeIdr   r   )r   RegisterTypeLanguager   r+   r,   r   r   r   )r   r.   r   registerTypeLanguageListr   r   r   get_name     
zRegisterTypeSerializer.get_namec                 C   Z   t | }|d ur't|tdkr)tjjt|jd}| dkr+t|ddj	S d S d S d S )Nr   r   r   Tmany)
r   r   r   r   r+   r,   r   r   RegisterTypeLanguageSerializerrH   )r   r.   r   r   r   r   r   get_languageList     z'RegisterTypeSerializer.get_languageListN
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ~      	r   c                   @   r   )r   c                   @      e Zd ZeZdddegZdS )z#RegisterTypeLanguageSerializer.Metar   r   r   N)r   r   r   r   r   r   r   r   r   r   r   r         r   Nr   r   r   r   r   r     r   r   c                   @   r   )OrderFromSerializerc                   @   r   )zOrderFromSerializer.Metar   N)r   r   r   	OrderFromr   r   r   r   r   r   r     r   r   c                 C   >   t | }tjjt|jdj|d}| dkr|d jS d S )NorderFromIdr   r   )r   OrderFromLanguager   r+   r,   r   r   r   )r   r.   r   orderFromLanguageListr   r   r   r        
zOrderFromSerializer.get_namec                 C   r   )Nr   r   r   Tr   )
r   r   r   r   r+   r,   r   r   OrderFromLanguageSerializerrH   )r   r.   r   r   r   r   r   r     r   z$OrderFromSerializer.get_languageListNr   r   r   r   r   r         r   c                   @   r   )r   c                   @   r   )z OrderFromLanguageSerializer.Metar   r   r   N)r   r   r   r   r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r     r   r   c                   @   r   )r   c                   @   r   )zReturnStatusSerializer.Metar   N)r   r   r   r   r   r   r   r   r   r   r     r   r   c                 C   r   )Nr   r   r   )r   ReturnStatusLanguager   r+   r,   r   r   r   )r   r.   r   returnStatusLanguageListr   r   r   r     r   zReturnStatusSerializer.get_namec                 C   r   )Nr   r   r   Tr   )
r   r   r   r   r+   r,   r   r   ReturnStatusLanguageSerializerrH   )r   r.   r   r   r   r   r   r     r   z'ReturnStatusSerializer.get_languageListNr   r   r   r   r   r     r   r   c                   @   r   )r   c                   @   r   )z#ReturnStatusLanguageSerializer.Metar   r   r   N)r   r   r   r   r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r     r   r   c                   @   r   )TrackStatusSerializerc                   @   r   )zTrackStatusSerializer.Metar   N)r   r   r   TrackStatusr   r   r   r   r   r   r     r   r   c                 C   r   )NtrackStatusIdr   r   )r   TrackStatusLanguager   r+   r,   r   r   r   )r   r.   r   trackStatusLanguageListr   r   r   r     r   zTrackStatusSerializer.get_namec                 C   r   )Nr   r   r   Tr   )
r   r   r   r   r+   r,   r   r   TrackStatusLanguageSerializerrH   )r   r.   r   r   r   r   r   r   &  r   z&TrackStatusSerializer.get_languageListNr   r   r   r   r   r     r   r   c                   @   r   )r   c                   @   r   )z"TrackStatusLanguageSerializer.Metar   r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   3  r   r   Nr   r   r   r   r   r   2  r   r   c                   @   r   )SKUCostSerializerc                   @   r   )zSKUCostSerializer.Meta)r   r8   r9   r:   r;   
cancelCost
returnCostr<   r=   r   r   r   N)r   r   r   SKUCostr   r   r   r   r   r   r   @  r   r   Nr   r   r   r   r   r   ?  r   r   c                   @   r   )rq   c                   @   r   )zPaymentMethodSerializer.Metar   r   r   r   r   r   r   N)r   r   r   ro   r   r   r   r   r   r   r   Y  r   r   c                 C   r   )Nrp   r   r   )r   PaymentMethodLanguager   r+   r,   r   r   r   )r   r.   r   paymentMethodLanguageListr   r   r   r   h  r   z PaymentMethodSerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r+   r,   r   r   PaymentMethodLanguageSerializerrH   )r   r.   r   r  r   r   r   r   p  r   z(PaymentMethodSerializer.get_languageListNr   r   r   r   r   rq   U      rq   c                   @   r   )r  c                   @   r   )z$PaymentMethodLanguageSerializer.Metar   r   rp   N)r   r   r   r  r   r   r   r   r   r   r   r   ~  r   r   Nr   r   r   r   r   r  }  r   r  c                   @   r   )EligibleTypeSerializerc                   @   r   )zEligibleTypeSerializer.Meta)r   r   	keyOptionr   r   r   r   N)r   r   r   EligibleTyper   r   r   r   r   r   r     r   r   c                 C   r   )NeligibleTypeIdr   r   )r   EligibleTypeLanguager   r+   r,   r   r   r   )r   r.   r   eligibleTypeLanguageListr   r   r   r     r   zEligibleTypeSerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r+   r,   r   r   EligibleTypeLanguageSerializerrH   )r   r.   r   r  r   r   r   r     r   z'EligibleTypeSerializer.get_languageListNr   r   r   r   r   r	        r	  c                   @   r   )r  c                   @   r   )z#EligibleTypeLanguageSerializer.Metar   r   r  N)r   r   r   r  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r   )rG   c                   @   r   )zCountrySerializer.Meta)	r   isActiveisMainBranchdialCodecurrencyr   r   r   r   N)r   r   r   rE   r   r   r   r   r   r   r     r   r   c                 C   r   )NrF   r   r   )r   CountryLanguager   r+   r,   r   r   r   )r   r.   r   countryLanguageListr   r   r   r     r   zCountrySerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r+   r,   r   r   CountryLanguageSerializerrH   )r   r.   r   r  r   r   r   r     r   z"CountrySerializer.get_languageListNr   r   r   r   r   rG     s    rG   c                   @   r   )r  c                   @   r   )zCountryLanguageSerializer.Metar   r   rF   N)r   r   r   r  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r   )rO   c                   @   r   )zStateSerializer.Meta)r   r  r   r   rF   r   r   N)r   r   r   rN   r   r   r   r   r   r   r     r   r   c                 C   r   )NrM   r   r   )r   StateLanguager   r+   r,   r   r   r   )r   r.   r   stateLanguageListr   r   r   r     r   zStateSerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r+   r,   r   r   StateLanguageSerializerrH   )r   r.   r   r  r   r   r   r     r   z StateSerializer.get_languageListNr   r   r   r   r   rO     r  rO   c                   @   r   )r  c                   @   r   )zStateLanguageSerializer.Metar   r   rM   N)r   r   r   r  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r   )rV   c                   @   r   )zCitySerializer.Meta)r   r  r   r   rM   r   r   N)r   r   r   rU   r   r   r   r   r   r   r   (  r   r   c                 C   r   )NrT   r   r   )r   CityLanguager   r+   r,   r   r   r   )r   r.   r   cityLanguageListr   r   r   r   4  r   zCitySerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r+   r,   r   r   CityLanguageSerializerrH   )r   r.   r   r   r   r   r   r   <  r   zCitySerializer.get_languageListNr   r   r   r   r   rV   $  r  rV   c                   @   r   )r!  c                   @   r   )zCityLanguageSerializer.Metar   r   rT   N)r   r   r   r  r   r   r   r   r   r   r   r   J  r   r   Nr   r   r   r   r   r!  I  r   r!  c                   @   r   )r\   c                   @   r   )zShippingMethodSerializer.Metar  N)r   r   r   rZ   r   r   r   r   r   r   r   [  r   r   c                 C   r   )Nr[   r   r   )r   ShippingMethodLanguager   r+   r,   r   r   r   )r   r.   r   shippingMethodLanguageListr   r   r   r   g  r   z!ShippingMethodSerializer.get_namec                 C   r   )Nr   r"  r   Tr   )
r   r   r#  r   r+   r,   r   r    ShippingMethodLanguageSerializerrH   )r   r.   r   r$  r   r   r   r   o  r   z)ShippingMethodSerializer.get_languageListNr   r   r   r   r   r\   W  r  r\   c                   @   r   )r%  c                   @   r   )z%ShippingMethodLanguageSerializer.Metar   r   r[   N)r   r   r   r#  r   r   r   r   r   r   r   r   |  r   r   Nr   r   r   r   r   r%  {  r   r%  c                   @   J   e Zd Ze Ze Ze ZG dd dZdd Z	dd Z
dd Zd	S )
ShippingCostSerializerc                   @   r   )zShippingCostSerializer.Meta)r   r>   additionalPricer   workingDaysDeliveryDaysr   r   rF   r[   r   rI   r]   r   N)r   r   r   ShippingCostr   r   r   r   r   r   r     r   r   c                 C   2   t | }|d urt|tdkrt| |S d S d S Nr   )r2   r   rJ   )r   r.   r1   r   r   r   get_country     
z"ShippingCostSerializer.get_countryc                 C   r,  r-  )r4   r   r^   )r   r.   r3   r   r   r   get_shippingMethod  r/  z)ShippingCostSerializer.get_shippingMethodc                 C   r,  r-  )r6   r   r   )r   r.   ZisShowSupplierr   r   r   get_supplier  r/  z#ShippingCostSerializer.get_supplierN)r   r   r   r   r   rI   r]   r   r   r.  r0  r1  r   r   r   r   r'    s    r'  c                   @   r   )rf   c                   @   r   )zDepartmentSerializer.Meta)
r   r   	isVisible
totalViewsr   r   isMainDepartmentre   r   r   N)r   r   r   rd   r   r   r   r   r   r   r     r   r   c                 C   r   )Nre   r   r   )r   DepartmentLanguager   r+   r,   r   r   r   )r   r.   r   departmentLanguageListr   r   r   r     r   zDepartmentSerializer.get_namec                 C   r   )Nr   r5  r   Tr   )
r   r   r6  r   r+   r,   r   r   DepartmentLanguageSerializerrH   )r   r.   r   r7  r   r   r   r     r   z%DepartmentSerializer.get_languageListNr   r   r   r   r   rf     r  rf   c                   @   r   )r8  c                   @   r   )z!DepartmentLanguageSerializer.Metar   r   re   N)r   r   r   r6  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r8    r   r8  c                   @   r   )BrandSerializerc                   @   r   )zBrandSerializer.Meta)r   r   r2  imager   r   r   r   Nr   r   r   Brandr   r   r   r   r   r   r     r   r   c                 C   r   NbrandIdr   r   r   BrandLanguager   r+   r,   r   r   r   r   r.   r   brandLanguageListr   r   r   r     r   zBrandSerializer.get_namec                 C   r   )Nr   r>  r   Tr   )
r   r   rA  r   r+   r,   r   r   BrandLanguageSerializerrH   )r   r.   r   rC  r   r   r   r     s   z BrandSerializer.get_languageListNr   r   r   r   r   r9    s    r9  c                   @   r   )rD  c                   @   r   )zBrandLanguageSerializer.Metar   r   r?  N)r   r   r   rA  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rD    r   rD  c                   @   r   )BrandDisplaySerializerc                   @   r   )zBrandDisplaySerializer.Meta)r   r   r   Nr;  r   r   r   r   r     r   r   c                 C   r   r=  r@  rB  r   r   r   r   "  r   zBrandDisplaySerializer.get_nameNr   r   r   r   r   r   r   r   r   r   r   r   rE    s    rE  c                   @   r   )rv   c                   @   r   )z!SubscriptionStatusSerializer.Metar   N)r   r   r   rt   r   r   r   r   r   r   r   2  r   r   c                 C   r   )Nru   r   r   )r   SubscriptionStatusLanguager   r+   r,   r   r   r   )r   r.   r   subscriptionStatusLanguageListr   r   r   r   =  r   z%SubscriptionStatusSerializer.get_namec                 C   r   )Nr   rG  r   Tr   )
r   r   rH  r   r+   r,   r   r   $SubscriptionStatusLanguageSerializerrH   )r   r.   r   rI  r   r   r   r   E      z-SubscriptionStatusSerializer.get_languageListNr   r   r   r   r   rv   .  r   rv   c                   @   r   )rJ  c                   @   r   )z)SubscriptionStatusLanguageSerializer.Metar   r   ru   N)r   r   r   rH  r   r   r   r   r   r   r   r   U  r   r   Nr   r   r   r   r   rJ  T  r   rJ  c                   @   r   )SubscriptionOptionSerializerc                   @   r   )z!SubscriptionOptionSerializer.Metar   N)r   r   r   SubscriptionOptionr   r   r   r   r   r   r   f  r   r   c                 C   r   )NsubscriptionOptionIdr   r   )r   SubscriptionOptionLanguager   r+   r,   r   r   r   )r   r.   r   subscriptionOptionLanguageListr   r   r   r   q  r   z%SubscriptionOptionSerializer.get_namec                 C   r   )Nr   rN  r   Tr   )
r   r   rP  r   r+   r,   r   r   $SubscriptionOptionLanguageSerializerrH   )r   r.   r   rQ  r   r   r   r   y  rK  z-SubscriptionOptionSerializer.get_languageListNr   r   r   r   r   rL  b  r   rL  c                   @   r   )rR  c                   @   r   )z)SubscriptionOptionLanguageSerializer.Metar   r   rO  N)r   r   r   rP  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rR    r   rR  c                   @   r   )r|   c                   @   r   )zSubscriptionTypeSerializer.Meta)r   costPerMonthr>   discountr8   durationInMonthr   r   r   rO  r   r   N)r   r   r   rz   r   r   r   r   r   r   r     r   r   c                 C   r   )Nr{   r   r   )r   SubscriptionTypeLanguager   r+   r,   r   r   r   )r   r.   r   subscriptionTypeLanguageListr   r   r   r     r   z#SubscriptionTypeSerializer.get_namec                 C   r   )Nr   rV  r   Tr   )
r   r   rW  r   r+   r,   r   r   "SubscriptionTypeLanguageSerializerrH   )r   r.   r   rX  r   r   r   r     r   z+SubscriptionTypeSerializer.get_languageListNr   r   r   r   r   r|     s    r|   c                   @   r   )rY  c                   @   r   )z'SubscriptionTypeLanguageSerializer.Metar   r   r{   N)r   r   r   rW  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rY    r   rY  c                   @   r   )rl   c                   @   r   )zTransactionTypeSerializer.Metar   N)r   r   r   rj   r   r   r   r   r   r   r     r   r   c                 C   r   )Nrk   r   r   )r   TransactionTypeLanguager   r+   r,   r   r   r   )r   r.   r   transactionTypeLanguageListr   r   r   r     r   z"TransactionTypeSerializer.get_namec                 C   r   )Nr   rZ  r   Tr   )
r   r   r[  r   r+   r,   r   r   !TransactionTypeLanguageSerializerrH   )r   r.   r   r\  r   r   r   r     r   z*TransactionTypeSerializer.get_languageListNr   r   r   r   r   rl     r   rl   c                   @   r   )r]  c                   @   r   )z&TransactionTypeLanguageSerializer.Metar   r   rk   N)r   r   r   r[  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r]    r   r]  c                   @   r&  )
NewArrivalSerializerc                   @   r   )zNewArrivalSerializer.Meta)r   r   r   r   descriptionr   Nr   r   r   
NewArrivalr   r   r   r   r   r   r     r   r   c                 C   r   NnewArrivalIdr   r   r   NewArrivalLanguager   r+   r,   r   r   r   r   r.   r   newArrivalLanguageListr   r   r   r     r   zNewArrivalSerializer.get_namec                 C   r   rb  )r   rf  r   r+   r,   r   r   r_  rg  r   r   r   get_description  r   z$NewArrivalSerializer.get_descriptionc                 C   r   )Nr   rc  r   Tr   )
r   r   rf  r   r+   r,   r   r   NewArrivalLanguageSerializerrH   )r   r.   r   rh  r   r   r   r      r   z%NewArrivalSerializer.get_languageListN)r   r   r   r   r   r   r_  r   r   r   ri  r   r   r   r   r   r^     s    r^  c                   @   r   )rj  c                   @      e Zd ZeZddddegZdS )z!NewArrivalLanguageSerializer.Metar   r   r_  rd  N)r   r   r   rf  r   r   r   r   r   r   r   r   .  s    r   Nr   r   r   r   r   rj  -  r   rj  c                   @   r   )NewArrivalDisplaySerializerc                   @      e Zd ZeZddgZdS )z NewArrivalDisplaySerializer.Metar   r   Nr`  r   r   r   r   r   <  
    r   c                 C   r   rb  re  rg  r   r   r   r   C  r   z$NewArrivalDisplaySerializer.get_nameNrF  r   r   r   r   rl  9      rl  c                   @   r   )AppContentSerializerc                   @   r   )zAppContentSerializer.Meta)r   r   isImager:  r   r   r_  r   N)r   r   r   
AppContentr   r   r   r   r   r   r   Q  r   r   c                 C   r   Nr'   r   r   )r   AppContentLanguager   r+   r,   r   r   r_  )r   r.   r   appContentLanguageListr   r   r   ri  ^     
z$AppContentSerializer.get_descriptionc                 C   r   )Nr   )appContentIdr   Tr   )
r   r   rt  r   r+   r,   r   r   AppContentLanguageSerializerrH   )r   r.   r   ru  r   r   r   r   f  r   z%AppContentSerializer.get_languageListN
r   r   r   r   r   r_  r   r   ri  r   r   r   r   r   rp  N  s    rp  c                   @   r   )rx  c                   @   r   )z!AppContentLanguageSerializer.Metar   r_  rw  N)r   r   r   rt  r   r   r   r   r   r   r   r   s  r   r   Nr   r   r   r   r   rx  r  r   rx  c                   @   r   )CouponSerializerc                   @   r   )zCouponSerializer.Meta)r   coderT  	startDateendDater_  r   r   N)r   r   r   Couponr   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rz    r   rz  c                   @   j   e Zd Ze Ze Ze Ze Ze Z	G dd dZ
dd Zdd Zdd Zd	d
 Zdd ZdS )ClientSerializerc                   @   r   )zClientSerializer.Meta)r   	firstNamelastNameemailpasswordphoner   r   r   selectedLanguageIdregisterTyper   creditCardListaddressBookListwalletNr   r   r   r   r   r   r   r   r   r   r     r   r   c                 C   rB   rC   )
r   r   r   r   r,   r   r   r   r   rH   )r   r.   r   r  r   r   r   get_registerType  ri   z!ClientSerializer.get_registerTypec                 C   "   t jjt|jd}t|ddjS )Nr)   Tr   )ClientCreditCardr   r+   r,   r   ClientCreditCardSerializerrH   r   r.   r  r   r   r   get_creditCardList     z#ClientSerializer.get_creditCardListc                 C   s0   t | }tjjt|jd}t|dt|idjS )Nr)   Tr   r   )	r   ClientAddressBookr   r+   r,   r   ClientAddressBookSerializerr   rH   )r   r.   r   r  r   r   r   get_addressBookList  s   
z$ClientSerializer.get_addressBookListc                 C   rX   rY   r   r   r   r,   r  r   r   rH   r   r.   r   r   r   r   get_selectedLanguage  r_   z%ClientSerializer.get_selectedLanguagec                 C   s:   t jjt|jd rt jjt|jd}t|jS d S )Nr)   )	Walletr   r+   r,   r   existsr   WalletSerializerrH   )r   r.   r  r   r   r   
get_wallet  s   
zClientSerializer.get_walletN)r   r   r   r   r   r  r   r  r  r  r   r  r  r  r  r  r   r   r   r   r    s    	r  c                   @   r   )r   c                   @   r   )zClientDisplaySerializer.Meta)r   r  r  r  Nr  r   r   r   r   r     r   r   Nr   r   r   r   r   r     r   r   c                   @   r   )r  c                   @   r   )zClientCreditCardSerializer.Meta)r   holdernumber
expireYearexpireMonthr   r   r   N)r   r   r   r  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r&  )
r  c                   @   r   )z ClientAddressBookSerializer.Meta)r   address1address2zipCoder   r   rF   rM   rT   r   rI   rQ   cityN)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   
   t | |S NrJ   r   r.   r   r   r   r.        
z'ClientAddressBookSerializer.get_countryc                 C   r  r  rR   r  r   r   r   	get_state  r  z%ClientAddressBookSerializer.get_statec                 C   r  r  rW   r  r   r   r   get_city  r  z$ClientAddressBookSerializer.get_cityN)r   r   r   r   r   rI   rQ   r  r   r.  r  r  r   r   r   r   r    s    r  c                   @   sz   e Zd Ze Ze Ze Ze Ze Z	e Z
G dd dZdd Zdd Zdd Zd	d
 Zdd Zdd ZdS )r  c                   @   r   )zWalletSerializer.Meta)	r   r   r   inCountinSumoutCountoutSum
transCounttransSumN)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   $   t jjddj|jjdd S )Nr   rZ  walletId-idTransactionr   r+   r   r   order_byr-   r  r   r   r   get_inCount#     zWalletSerializer.get_inCountc                 C   r  )N   rZ  r  r  r  r  r   r   r   get_outCount+  r  zWalletSerializer.get_outCountc                 C   N   t jjddj|jjddtd}|d ur%|d }|d ur#|S dS d S )Nr   rZ  r  r  amountamount__sumr   r  r   r+   r   r   r  	aggregateSum)r   r.   	inValDictinValr   r   r   	get_inSum3     
zWalletSerializer.get_inSumc                 C   r  )Nr  rZ  r  r  r  r  r   r  )r   r.   
outValDictoutValr   r   r   
get_outSumA  r  zWalletSerializer.get_outSumc                 C   st   t jjddj|jjdd }t jjddj|jjdd }|d ur6|d ur8|}|}|| }|S d S d S )Nr   rZ  r  r  r  r  r   r.   r  r  r  r  r@   r   r   r   get_transCountO  s(   zWalletSerializer.get_transCountc                 C   s   t jjddj|jjddtd}t jjddj|jjddtd}|d urT|d urP|d }|d }|d urL|d urH|| }|S d}|S d}|S d}|S d}|S )	Nr   rZ  r  r  r  r  r  r   r  r  r   r   r   get_transSumc  s8   

	zWalletSerializer.get_transSumN)r   r   r   r   r   r  r  r  r  r  r  r   r  r  r  r  r  r  r   r   r   r   r    s    r  c                   @   r   )TransactionSerializerc                   @   r   )zTransactionSerializer.Meta)r   r  r   r   rk   r  rm   N)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   r  r  rn   r  r   r   r   get_transactionType  r  z)TransactionSerializer.get_transactionTypeNr   r   r   r   r   rm   r   r  r   r   r   r   r        r  c                   @   r   )ShoppingCartSerializerc                   @   r   )zShoppingCartSerializer.Meta)r   r   r   r   N)r   r   r   ShoppingCartr   r   r   r   r   r   r     r   r   c                 C   s   |j d ur
t| |S d S r  )r   r   r  r   r   r   
get_client  s   

z!ShoppingCartSerializer.get_clientNr   r   r   r   r   r   r   r  r   r   r   r   r    s    	r  c                   @      e Zd Ze Ze Ze Ze Ze Z	e Z
G dd dZdd Zdd Zdd Zd	d
 Zdd Zdd Zdd ZdS )PurchaseOrderSerializerc                   @   r   )zPurchaseOrderSerializer.Meta)r   r   r   
isCanceled
isRefundedrp   r   couponIdr   rr   	orderFromcouponr   countSalesOrder	orderCostN)r   r   r   PurchaseOrderr   r   r   r   r   r   r     r   r   c                 C   s   t jjt|jd}| S )N)ZshippingItemId__purchaseOrderId)
SalesOrderr   r+   r,   r   r   )r   r.   ZsalesOrderListr   r   r   get_countSalesOrder  s   z+PurchaseOrderSerializer.get_countSalesOrderc                 C   r  r  rs   r  r   r   r   get_paymentMethod  r  z)PurchaseOrderSerializer.get_paymentMethodc                 C   rB   rC   )
r   r   r   r   r,   r   r   r   r   rH   )r   r.   r   r  r   r   r   get_orderFrom  rK   z%PurchaseOrderSerializer.get_orderFromc                 C   .   |j d urtjjt|j jd}t|jS d S rY   )r  r~  r   r   r,   r   rz  rH   )r   r.   r  r   r   r   
get_coupon     

z"PurchaseOrderSerializer.get_couponc                 C   r  rY   )r   r   r   r   r,   r   r   rH   )r   r.   r   r   r   r   r    r  z"PurchaseOrderSerializer.get_clientc                 C   s"   d}d}d}d}d}|||||fS )Nr   r   r   r.   subTotal
sumServicesumTaxessumPaymentMethodsumDeliveryr   r   r   	calculate  s   'z!PurchaseOrderSerializer.calculatec                 C   s$   |  |\}}}}}|||||dS )N)r  r  r  r  r  )r  r  r   r   r   get_orderCost  s   z%PurchaseOrderSerializer.get_orderCostN)r   r   r   r   r   rr   r  r  r   r  r  r   r  r  r  r  r  r  r  r   r   r   r   r    s    /r  c                   @   r  )SupplierSerializerc                   @   r   )zSupplierSerializer.Meta)r   r   r  r  
isVerifiedr   r   r  isFreeSubscriptionUsedr   	phoneListr  documentListcurrentSubscriptionNr   r   r   r   r   r   r   r   r   r   r   &  r   r   c                 C   rX   rY   r  r  r   r   r   r  9  r_   z'SupplierSerializer.get_selectedLanguagec                 C   r  Nr   Tr   )SupplierPhoner   r+   r,   r   SupplierPhoneSerializerrH   r   r.   r  r   r   r   get_phoneList=  r  z SupplierSerializer.get_phoneListc                 C   r  r  )SupplierCreditCardr   r+   r,   r   SupplierCreditCardSerializerrH   r  r   r   r   r  A  r  z%SupplierSerializer.get_creditCardListc                 C   r  r  )SupplierDocumentr   r+   r,   r   SupplierDocumentSerializerrH   )r   r.   r  r   r   r   get_documentListE  r  z#SupplierSerializer.get_documentListc                 C   sv   t jjdd}| dkr7tjj|d jdj|jd}| dkr9t| }t| }t|d t	|d|idj
S d S d S )Nactive)r   r   rG  r  r   rD   )rt   r   r+   r   Subscriptionr   r   r   SubscriptionSerializerr   rH   )r   r.   Z
statusListZcurrentSubscriptionListr   r   r   r   r   get_currentSubscriptionI  s$   
z*SupplierSerializer.get_currentSubscriptionN)r   r   r   r   r   r  r  r  r   r  r   r  r  r  r  r  r   r   r   r   r    s    r  c                   @   r   )r   c                   @   r   )zSupplierDisplaySerializer.Meta)r   r   r  Nr  r   r   r   r   r   Y  r   r   Nr   r   r   r   r   r   X  r   r   c                   @   r   )r  c                   @   r   )zSupplierPhoneSerializer.Meta)r   r  r   r   r   N)r   r   r   r  r   r   r   r   r   r   r   f  r   r   Nr   r   r   r   r   r  e  r   r  c                   @   r   )r  c                   @   r   )z!SupplierCreditCardSerializer.Meta)r   r  r  r  r  r   r   r   N)r   r   r   r   r   r   r   r   r   r   r   u  r   r   Nr   r   r   r   r   r  t  r   r  c                   @   r   )r  c                   @   r   )zSupplierDocumentSerializer.Meta)r   fileNamecontentTypefileDocumentr   r   r   N)r   r   r   r  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r   )r  c                   @   r   )zSubscriptionSerializer.Meta)r   r>   rT  r8   r|  r}  r   r   r   r{   ru   r}   rw   N)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   r  r  r~   r  r   r   r   get_subscriptionType  r  z+SubscriptionSerializer.get_subscriptionTypec                 C   r  r  rx   r  r   r   r   get_subscriptionStatus  r  z-SubscriptionSerializer.get_subscriptionStatusN
r   r   r   r   r   r}   rw   r   r  r  r   r   r   r   r        r  c                   @   r   )rb   c                   @   r   )zDeliveryManSerializer.Meta)	r   r   r  r  r   r   r  r   r  Nr   r   r   r`   r   r   r   r   r   r   r     r   r   c                 C   rX   rY   r  r  r   r   r   r    r_   z*DeliveryManSerializer.get_selectedLanguagec                 C   r  )N)ra   Tr   )DeliveryManPhoner   r+   r,   r   DeliveryManPhoneSerializerrH   r  r   r   r   r    r  z#DeliveryManSerializer.get_phoneListN)
r   r   r   r   r   r   r  r   r  r  r   r   r   r   rb     s    rb   c                   @   r   )DeliveryManDisplaySerializerc                   @   rm  )z!DeliveryManDisplaySerializer.Metar   r   Nr  r   r   r   r   r     rn  r   Nr   r   r   r   r   r    r   r  c                   @   r   )r  c                   @   r   )zDeliveryManPhoneSerializer.Meta)r   r  r   r   ra   N)r   r   r   r  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r  )ShippingItemSerializerc                   @   r   )zShippingItemSerializer.Meta)r   r   r   shippingCostIdpurchaseOrderIdisSalesOrderCreatedr  isValidAndPaidshippingCostshippingAddresspurchaseShippingItemListN)r   r   r   ShippingItemr   r   r   r   r   r   r     r   r   c                 C   s    t jjt|jd rdS dS )NshippingItemIdTF)r  r   r+   r,   r   r  r  r   r   r   get_isSalesOrderCreated  s   z.ShippingItemSerializer.get_isSalesOrderCreatedc                 C   s   |j jS r  )r  r  r  r   r   r   get_isCanceled
  s   z%ShippingItemSerializer.get_isCanceledc                 C   s\   |j d ur*tjjt|j jd r,t| }tjjt|j jd}t	|t
|idjS d S d S rC   )r  r+  r   r+   r,   r   r  r   r   r'  r   rH   )r   r.   r   r  r   r   r   get_shippingCost  s"   


z'ShippingItemSerializer.get_shippingCostc                 C   sJ   t jjt|jd r#t| }t jjt|jd}t|t	|idj
S d S )Nr  rD   )ShippingAddressr   r+   r,   r   r  r   r   ShippingAddressSerializerr   rH   )r   r.   r   r  r   r   r   get_shippingAddress  s   z*ShippingItemSerializer.get_shippingAddressc           	      C   s   t | }|d ur<t|dkr>t| }t| }t| }t| }t| }tjj	|j
d}t|dd|t|d|d|d|idjS d S d S )	Nr   r  Tr   r   r!   r#   r  )r&   intr   r   r   r"   r$   PurchaseShippingItemr   r+   r   PurchaseShippingItemSerializerr   rH   )	r   r.   r%   r   r   r   r!   r#   purchaseShippingItemr   r   r   get_purchaseShippingItemList'  s2   
z3ShippingItemSerializer.get_purchaseShippingItemListN)r   r   r   r   r   r  r  r  r  r  r   r!  r"  r#  r&  r+  r   r   r   r   r    s    r  c                   @   Z   e Zd Ze Ze Ze Ze ZG dd dZ	dd Z
dd Zdd Zd	d
 ZdS )r%  c                   @   r   )zShippingAddressSerializer.Meta)r   trackNumberr  r  r  r   r   rF   rM   rT   rI   rQ   r  	trackListN)r   r   r   r$  r   r   r   r   r   r   r   H  r   r   c                 C   r  r  r  r  r   r   r   r.  [  r  z%ShippingAddressSerializer.get_countryc                 C   r  r  r  r  r   r   r   r  ^  r  z#ShippingAddressSerializer.get_statec                 C   r  r  r  r  r   r   r   r  a  r  z"ShippingAddressSerializer.get_cityc                 C   s4   t | }tjj|jjdd}t|dt|idj	S )N)shippingAddressIdr  Tr  )
r   Trackr   r+   r   r   r  TrackSerializerr   rH   )r   r.   r   r.  r   r   r   get_trackListd  s   
z'ShippingAddressSerializer.get_trackListN)r   r   r   r   r   rI   rQ   r  r.  r   r.  r  r  r2  r   r   r   r   r%  B  s    r%  c                   @   r   )r1  c                   @   r   )zTrackSerializer.Meta)r   r   r   r/  r   trackStatusN)r   r   r   r0  r   r   r   r   r   r   r   t  r   r   c                 C   rB   rC   )
r   r   r   r   r,   r   r   r   r   rH   )r   r.   r   r3  r   r   r   get_trackStatus  ri   zTrackSerializer.get_trackStatusN)r   r   r   r   r   r3  r   r4  r   r   r   r   r1  q  r   r1  c                   @   r&  )
SalesOrderSerializerc                   @   r   )zSalesOrderSerializer.Meta)r   r   r   isConfirmedr   shippingItemr   salesOrderItemListN)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   sd   t | }|d ur.t|dkr0t| }t| }tjjt|jj	d}t
|t|d|d|idjS d S d S )Nr   r   r   r%   rD   )r   r'  r   r&   r  r   r   r,   r   r   r  r   rH   )r   r.   r   r   r%   r7  r   r   r   get_shippingItem  s&   
z%SalesOrderSerializer.get_shippingItemc                 C   s.   t | }|d urt|dkrt| |S d S d S )Nr   )r   r'  r   )r   r.   r   r   r   r   r1    s   
z!SalesOrderSerializer.get_supplierc                 C   s:   t | }t| }tjj|jjd}t|dt|d|idj	S )N)salesOrderIdTr!   r  )
r"   r   SalesOrderItemr   r+   r   r   SalesOrderItemSerializerr   rH   )r   r.   r!   r   ZsalesOrderItemr   r   r   get_salesOrderItemList  s   
z+SalesOrderSerializer.get_salesOrderItemListN)r   r   r   r   r   r7  r   r8  r   r9  r1  r=  r   r   r   r   r5    s    r5  c                   @   r   )ItemKeyNameSerializerc                   @   rm  )zItemKeyNameSerializer.Metar   r   Nr   r   r   Itemr   r   r   r   r   r   r     rn  r   Nr   r   r   r   r   r>    r   r>  c                   @   r   )ItemBasicSerializerc                   @   rm  )zItemBasicSerializer.Metar   r   Nr?  r   r   r   r   r     rn  r   c                 C   r   rs  r   ItemLanguager   r+   r,   r   r   r   r   r.   r   itemLanguageListr   r   r   r     rv  zItemBasicSerializer.get_nameNrF  r   r   r   r   rA    ro  rA  c                   @   s   e Zd Ze Ze Ze Ze Ze Z	e Z
e Ze Ze Ze Ze Ze ZG dd dZdd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )ItemSerializerc                   @   r   )zItemSerializer.Meta)r   r   
isApprovedisTop
isFavoriteisMostDiscountisMostViewedisNewArrivalisElectronicr3  r   r   re   r?  r   rd  r   r   r_  rg   brandr   
newArrivalskuListfeatureBulletListrateisFavoriteWithClientr  Nr?  r   r   r   r   r     r   r   c                 C   r  r  r0   r  r   r   r   get_isFavoriteWithClient	  r  z'ItemSerializer.get_isFavoriteWithClientc                 C   sH   t | }|d ur"t|tdkr"tjj|jdjtdd}|d S dS )Nr   r'   r  )
sum_amountrV  r   )r   r   r   r   r+   r   r  r  )r   r.   r   r-   r   r   r   
get_amount	  s   zItemSerializer.get_amountc                 C   s  t | }t| }t| }t| }d}d}g }|d urt|dkr9tjj|jd	d}t
|t|d|d|iddjS d	}	| jd
rU| jd
 jdd }| jd
 jdd }|d ur||d ur|t|dkr{t|dkr{d}	tjj|jdj|dj|d}n4|d urt|dkrd}	tjj|jdj|d}n|d urt|dkrd}	tjj|jdj|d}nd	}	|	d	krtjj|jd	d}| dkrg }
|
|d  t
|
t|d|d|iddjS g S g S )Nr   r   r'   z-amountr   r!   Tr   r   Fr   	min_price	max_price)Z
price__gte)Z
price__lte)r   r   r    r"   r'  r   r   r+   r   r  r   r   rH   r   r	   r
   r   floatr   append)r   r.   r   r   r   r!   maxPriceminPriceselectedSKUListZisSelectedRangeZtempListr   r   r   get_skuList	  s   
zItemSerializer.get_skuListc                 C   sR   t jjt|jdtd}t jjt|jd }|d d ur'|d | S dS )Nr'   rR  Z	rate__sumr   )ClientItemRateReviewr   r+   r,   r   r  r  r-   )r   r.   Z	totalRater-   r   r   r   get_raten	  s   
zItemSerializer.get_ratec                 C   r  r  )rh   r  r   r   r   get_departmentz	  r  zItemSerializer.get_departmentc                 C   rB   rC   )
r   r<  r   r   r,   r?  r   rE  r   rH   )r   r.   r   rN  r   r   r   	get_brand}	  rK   zItemSerializer.get_brandc                 C   r  r  r   r  r   r   r   r1  	  r  zItemSerializer.get_supplierc                 C   s<   t | }t| }tjjt|jjd}t|t	|d|idj
S )Nr   r   rD   )r   r   ra  r   r   r,   rd  r   rl  r   rH   )r   r.   r   r   rO  r   r   r   get_newArrival	  s   zItemSerializer.get_newArrivalc                 C   s`   t | }t| }t| }|d ur.t|dkr,tjjt|jd}t	|t
|d|iddjS g S g S )Nr   r'   r   TrX  )r   r   r   r'  FeatureBulletr   r+   r,   r   FeatureBulletSerializerr   rH   )r   r.   r   r   r   rQ  r   r   r   get_featureBulletList	  s"   
z$ItemSerializer.get_featureBulletListc                 C   r   rs  rB  rD  r   r   r   r   	  rv  zItemSerializer.get_namec                 C   r   rs  )r   rC  r   r+   r,   r   r   r_  rD  r   r   r   ri  	  rv  zItemSerializer.get_descriptionc                 C   r   )Nr   r'   r   Tr   )
r   r   rC  r   r+   r,   r   r   ItemLanguageSerializerrH   )r   r.   r   rE  r   r   r   r   	  s   zItemSerializer.get_languageListN)r   r   r   r   r   r   r   r_  rg   rN  r   rO  rP  rQ  rR  r  rS  r   rU  rW  r`  rb  rc  rd  r1  rf  ri  r   ri  r   r   r   r   r   rF    s4    !
RrF  c                   @   r   )rj  c                   @   rk  )zItemLanguageSerializer.Metar   r   r_  r(   N)r   r   r   rC  r   r   r   r   r   r   r   r   	  s    r   Nr   r   r   r   r   rj  	  r   rj  c                   @   r   )rh  c                   @   r   )zFeatureBulletSerializer.Meta)r   r   r_  r   r   r   r(   N)r   r   r   rg  r   r   r   r   r   r   r   	  r   r   c                 C   r   )NfeatureBulletIdr   r   )r   FeatureBulletLanguager   r+   r,   r   r   r_  )r   r.   r   featureBullerLanguageListr   r   r   ri  	  r   z'FeatureBulletSerializer.get_descriptionc                 C   r   )Nr   rk  r   Tr   )
r   r   rm  r   r+   r,   r   r   FeatureBulletLanguageSerializerrH   )r   r.   r   rn  r   r   r   r   	  r   z(FeatureBulletSerializer.get_languageListNry  r   r   r   r   rh  	  s    	rh  c                   @   r   )ro  c                   @   r   )z$FeatureBulletLanguageSerializer.Metar   r_  rl  N)r   r   r   rm  r   r   r   r   r   r   r   r   	  r   r   Nr   r   r   r   r   ro  	  r   ro  c                   @   r   )EligibleSerializerc                   @   r   )zEligibleSerializer.Meta)r   r   r   r(   r  N)r   r   r   Eligibler   r   r   r   r   r   r   	  r   r   Nr   r   r   r   r   rp  	  r   rp  c                   @   r  )r   c                   @   r   )zSKUSerializer.Meta)r   r   r   r>   rT  r  rH  rI  rJ  rK  rL  r   r   r(   skuOldPriceskuNewPriceskuOptionListskuDescriptionListitem	imageListN)r   r   r   r   r   r   r   r   r   r   r   

  r   r   c                 C   8   t | }t| }tjj|jd}t|t|d|iddjS )Nr   r   TrX  )	r   r   	SKUOptionr   r+   r   SKUOptionSerializerr   rH   )r   r.   r   r   rt  r   r   r   get_skuOptionList#
     
zSKUSerializer.get_skuOptionListc                 C   sX   t | }t| }|d ur(t|tdkr*tjj|jd}t|t|d|iddj	S d S d S )Nr   ry  r   TrX  )
r   r   r   SKUDescriptionr   r+   r   SKUDescriptionSerializerr   rH   )r   r.   r   r   ru  r   r   r   get_skuDescriptionList-
  s   
z$SKUSerializer.get_skuDescriptionListc                 C   sl   t | }|d ur2t|dkr4t| }t| }t| }tjjt|j	j
d}t|d|t|d|idjS d S d S )Nr   r   r   r   rD   )r"   r'  r   r   r   r@  r   r   r,   r(   r   ItemDisplaySerializerr   rH   )r   r.   r!   r   r   r   rv  r   r   r   get_item9
  s$   zSKUSerializer.get_itemc                 C   s   t jj|jd}t|ddjS )Nry  Tr   )SKUImager   r+   r   SKUImageSerializerrH   )r   r.   ZskuImageListr   r   r   get_imageListK
  s   zSKUSerializer.get_imageListc                 C   s*   t jjdd}d }| dkr|d }|S )NT)r   r   )r  r   r+   r   )r   ZskuCostListr?   r   r   r   
getSKUCostO
  s
   zSKUSerializer.getSKUCostc                 C   sd   |   }|d ur0t|j|\}}|d ur0|d ur0|||j d  }i }t||d< ||d< |S d S )Nr7   r>   	skuCostId)r  rA   r>   rT  mathceil)r   r.   r?   ZoldPricer  rr  r   r   r   get_skuOldPriceV
  s   zSKUSerializer.get_skuOldPricec                 C   sR   |   }|d ur't|j|\}}|d ur'|d ur'i }t||d< ||d< |S d S )Nr>   r  )r  rA   r>   r  r  )r   r.   r?   newPricer  rs  r   r   r   get_skuNewPriceb
  s   zSKUSerializer.get_skuNewPriceN)r   r   r   r   r   rt  ru  rv  rw  rr  rs  r   r|  r  r  r  r  r  r  r   r   r   r   r   
  s    
r   c                   @   r   )r  c                   @   r   )zSKUImageSerializer.Meta)r   r   r	  	extensionsourcer:  r   N)r   r   r   r  r   r   r   r   r   r   r   p
  r   r   c                 C   s*   |j rt|j dr|j jdkr|j S |jS )Nr   z/media/default/holder.jpg)r:  hasattrr   r  r  r   r   r   	get_image{
  s   zSKUImageSerializer.get_imageN)r   r   r   r   r   r:  r   r  r   r   r   r   r  n
  s    r  c                   @   r,  )r{  c                   @   r   )zSKUOptionSerializer.Meta)
r   r   isColortitlevalue	colorNamer   r   r   r   N)r   r   r   rz  r   r   r   r   r   r   r   
  r   r   c                 C   r   NskuOptionIdr   r   )r   SKUOptionLanguager   r+   r,   r   r   r  r   r.   r   skuOptionLanguageListr   r   r   	get_title
  r   zSKUOptionSerializer.get_titlec                 C   r   r  )r   r  r   r+   r,   r   r   r  r  r   r   r   	get_value
  r   zSKUOptionSerializer.get_valuec                 C   r   r  )r   r  r   r+   r,   r   r   r  r  r   r   r   get_colorName
  r   z!SKUOptionSerializer.get_colorNamec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r+   r,   r   r   SKUOptionLanguageSerializerrH   )r   r.   r   r  r   r   r   r   
  r   z$SKUOptionSerializer.get_languageListN)r   r   r   r   r   r  r  r  r   r   r  r  r  r   r   r   r   r   r{  
  s    			r{  c                   @   r   )r  c                   @       e Zd ZeZdddddegZdS )z SKUOptionLanguageSerializer.Metar   r  r  r  r  N)r   r   r   r  r   r   r   r   r   r   r   r   
      r   Nr   r   r   r   r   r  
  r   r  c                   @   r&  )
r  c                   @   r   )zSKUDescriptionSerializer.Meta)	r   r   r  r  r  r   r   r   r   N)r   r   r   r~  r   r   r   r   r   r   r   
  r   r   c                 C   r   NskuDescriptionIdr   r   )r   SKUDescriptionLanguager   r+   r,   r   r   r  r   r.   r   skuDescriptionLanguageListr   r   r   r  
  r   z"SKUDescriptionSerializer.get_titlec                 C   r   r  )r   r  r   r+   r,   r   r   r  r  r   r   r   r  
  r   z"SKUDescriptionSerializer.get_valuec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r+   r,   r   r    SKUDescriptionLanguageSerializerrH   )r   r.   r   r  r   r   r   r   
  r   z)SKUDescriptionSerializer.get_languageListN)r   r   r   r   r   r  r  r   r   r  r  r   r   r   r   r   r  
  s    		r  c                   @   r   )r  c                   @   r  )z%SKUDescriptionLanguageSerializer.Metar   r  r  r  r  N)r   r   r   r  r   r   r   r   r   r   r   r     r  r   Nr   r   r   r   r   r    r   r  c                   @   r   )ItemSubscriptionSerializerc                   @   r   )zItemSubscriptionSerializer.Meta)r   r>   rT  r8   r|  r}  r   r   r(   r{   ru   r}   rw   N)r   r   r   ItemSubscriptionr   r   r   r   r   r   r     r   r   c                 C   r  r  r  r  r   r   r   r  )  r  z/ItemSubscriptionSerializer.get_subscriptionTypec                 C   r  r  r  r  r   r   r   r  ,  r  z1ItemSubscriptionSerializer.get_subscriptionStatusNr  r   r   r   r   r    r  r  c                   @   r   )ShoppingCartItemSerializerc                   @   r   )zShoppingCartItemSerializer.Meta)r   quantityr   r   shoppingCartIdr   r   N)r   r   r   ShoppingCartItemr   r   r   r   r   r   r   6  r   r   c                 C   r  r  r   r  r   r   r   get_skuB  r  z"ShoppingCartItemSerializer.get_skuNr   r   r   r   r   r   r   r  r   r   r   r   r  3  r  r  c                   @   r  )r)  c                   @   r   )z#PurchaseShippingItemSerializer.Meta)r   
totalPriceskuPriceskuDiscountdeliveredQuantityreturnedQuantitycanceledQuantityr   r   r  r   r   r   r?   canRequestReturnAgainrequestReturnListN)r   r   r   r(  r   r   r   r   r   r   r   O  r   r   c                 C   r  r  r  r  r   r   r   r  d  r  z&PurchaseShippingItemSerializer.get_skuc                 C   s,   t jjt|jjd}|d urt|jS d S rY   )r  r   r   r,   r  r   r   rH   )r   r.   r?   r   r   r   get_skuCostg  s   
z*PurchaseShippingItemSerializer.get_skuCostc                 C   s"   t |j|j\}}t||j S r  )rA   r  r  r  r  r  )r   r.   r>   r  r   r   r   get_totalPricel  s   z-PurchaseShippingItemSerializer.get_totalPricec                 C   s\   t | }|d ur*t|dkr,t| }t| }tjj|jd}t|dt	|d|idj
S d S d S )Nr   purchaseShippingItemIdTr   r  )r$   r'  r   r   RequestReturnr   r+   r   RequestReturnSerializerr   rH   )r   r.   r#   r   r   ZrequestReturnr   r   r   get_requestReturnListp  s"   
z4PurchaseShippingItemSerializer.get_requestReturnListc                 C   sz   |j dkr;tjj|jd}| dkr9d}|D ]}||j7 }q|j dkr7|j | }|dkr/dS |dkr5dS dS dS dS dS )Nr   r  TF)r  r  r   r+   r   r   requestedQuantity)r   r.   rH   sumddiffr   r   r   get_canRequestReturnAgain  s    


z8PurchaseShippingItemSerializer.get_canRequestReturnAgainN)r   r   r   r   r   r  r   r?   r  r  r   r  r  r  r  r  r   r   r   r   r)  H  s    r)  c                   @   s2   e Zd Ze ZG dd dZdd Zdd ZdS )r  c                   @   r   )zRequestReturnSerializer.Meta)
r   headLiner  issuenoter   r   r   r  r   Nr   r   r   r  r   r   r   r   r   r   r     r   r   c                 C      d S r  r   r  r   r   r   get_returnCost     z&RequestReturnSerializer.get_returnCostc                 C   r  r  r   r  r   r   r   get_returnStatus  r  z(RequestReturnSerializer.get_returnStatusN)	r   r   r   r   r   r   r   r  r  r   r   r   r   r    s
    r  c                   @   sB   e Zd Ze Ze ZG dd dZdd Zdd Z	dd Z
d	S )
RequestReturnSerializerDetailc                   @   r   )z"RequestReturnSerializerDetail.Meta)r   r  r  r  r  r   r   ZreturnCostIdr   r  r   r*  Nr  r   r   r   r   r     r   r   c                 C   r  r  r   r  r   r   r   r    r  z,RequestReturnSerializerDetail.get_returnCostc                 C   r  r  r  r  r   r   r   r    r  z.RequestReturnSerializerDetail.get_returnStatusc                 C   sH   t | }t| }t| }tjjt|jjd}t	|t
|d|d|idjS )Nr   r   r!   rD   )r   r   r"   r(  r   r   r,   r  r   r)  r   rH   )r   r.   r   r   r!   r*  r   r   r   get_purchaseShippingItem  s   
z6RequestReturnSerializerDetail.get_purchaseShippingItemN)r   r   r   r   r   r   r*  r   r  r  r  r   r   r   r   r    s    r  c                   @   r   )r<  c                   @   r   )zSalesOrderItemSerializer.Meta)r   r  r>   r   r   r   r:  r   N)r   r   r   r;  r   r   r   r   r   r   r     r   r   c                 C   r  r  r  r  r   r   r   r    r  z SalesOrderItemSerializer.get_skuNr  r   r   r   r   r<        r<  c                   @   r   )FavoriteSerializerc                   @   r   )zFavoriteSerializer.Meta)r   r   r   r(   r   rv  N)r   r   r   r*   r   r   r   r   r   r   r     r   r   c              
   C   sT   t | }t| }t| }t| }tjjt|jj	d}t
|d|t|d|d|idjS )Nr   r   r   r   rD   )r   r   r   r    r@  r   r   r,   r(   r   rF  r   rH   )r   r.   r   r   r   r   rv  r   r   r   r    s   zFavoriteSerializer.get_itemN)r   r   r   r   r   rv  r   r  r   r   r   r   r    r   r  c                   @   r   )ClientItemRateReviewSerializerc                   @   r   )z#ClientItemRateReviewSerializer.Meta)	r   r  rR  commentr   r   r(   r   r   N)r   r   r   ra  r   r   r   r   r   r   r   $  r   r   c                 C   r  r  r   r  r   r   r   r  2  r  z)ClientItemRateReviewSerializer.get_clientNr  r   r   r   r   r  !      r  c                   @   r   )"ClientSupplierRateReviewSerializerc                   @   r   )z'ClientSupplierRateReviewSerializer.Meta)	r   r  rR  r  r   r   r   r   r   N)r   r   r   ClientSupplierRateReviewr   r   r   r   r   r   r   <  r   r   c                 C   r  r  r  r  r   r   r   r  J  r  z-ClientSupplierRateReviewSerializer.get_clientNr  r   r   r   r   r  9  r  r  c                   @   r   )FeedbackSerializerc                   @   r   )zFeedbackSerializer.Meta)r   r  rR  r  r   r   r   r   N)r   r   r   Feedbackr   r   r   r   r   r   r   T  r   r   c                 C   r  r  r  r  r   r   r   r  a  r  zFeedbackSerializer.get_clientNr  r   r   r   r   r  Q  r  r  c                   @   r   )RequestSerializerc                   @   r   )zRequestSerializer.Meta)	r   r  r_  responseisDoner   r   r   r   N)r   r   r   Requestr   r   r   r   r   r   r   k  r   r   c                 C   r  r  r  r  r   r   r   r  y  r  zRequestSerializer.get_clientNr  r   r   r   r   r  h  r  r  c                   @   r   )PolicyTypeSerializerc                   @   r   )zPolicyTypeSerializer.Meta)r   r   r   r   N)r   r   r   
PolicyTyper   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r&  )
PolicyHeaderSerializerc                   @   r   )zPolicyHeaderSerializer.Meta)r   r   r   policyTypeIdr   r   descriptionListN)r   r   r   PolicyHeaderr   r   r   r   r   r   r     r   r   c                 C   r   )NpolicyHeaderIdr   r   )r   PolicyHeaderLanguager   r+   r,   r   r   r   )r   r.   r   policyHeaderLanguageListr   r   r   r     r   zPolicyHeaderSerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r+   r,   r   r   PolicyHeaderLanguageSerializerrH   )r   r.   r   r  r   r   r   r     r   z'PolicyHeaderSerializer.get_languageListc                 C   rx  )Nr  r   TrX  )	r   r   PolicyDescriptionr   r+   r   PolicyDescriptionSerializerr   rH   )r   r.   r   r   r  r   r   r   get_descriptionList  r}  z*PolicyHeaderSerializer.get_descriptionListN)r   r   r   r   r   r   r   r  r   r   r   r  r   r   r   r   r    s    	r  c                   @   r   )r  c                   @   r   )z#PolicyHeaderLanguageSerializer.Metar   r   r  N)r   r   r   r  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r   )r  c                   @   r   )z PolicyDescriptionSerializer.Meta)r   r   r   r  r_  r   N)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   r   )NpolicyDescriptionIdr   r   )r   PolicyDescriptionLanguager   r+   r,   r   r   r_  )r   r.   r   policyDescriptionLanguageListr   r   r   ri    r   z+PolicyDescriptionSerializer.get_descriptionc                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r+   r,   r   r   #PolicyDescriptionLanguageSerializerrH   )r   r.   r   r  r   r   r   r     rK  z,PolicyDescriptionSerializer.get_languageListNry  r   r   r   r   r    r   r  c                   @   r   )r  c                   @   r   )z(PolicyDescriptionLanguageSerializer.Metar   r_  r  N)r   r   r   r  r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r   )RechargeCostSerializerc                   @   r   )zRechargeCostSerializer.Meta)r   r8   r;   r<   r=   r   r   r   N)r   r   r   RechargeCostr   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                       s^   e Zd Ze Ze ZdZdZdZ	G dd dZ
dd Zdd Zdd	 Z fd
dZ  ZS )RechargeSerializerr   c                   @   r   )zRechargeSerializer.Meta)r   r  	sessionIdpaymentIntentIdr_  r   r   rechargeCostIdrp   rr   isPaidN)r   r   r   Recharger   r   r   r   r   r   r     r   r   c                 C   r  r  r   r  r   r   r   	get_taxes*  r  zRechargeSerializer.get_taxesc                 C   r  r  r  r  r   r   r   r  .  r  z$RechargeSerializer.get_paymentMethodc                 C   s   d}g }|  dkrd}|S )NFr   T)r   )r   r.   ZisCheckZpaymentListr   r   r   
get_isPaid1  s
   zRechargeSerializer.get_isPaidc                    s@   t  |}d| _d| _d| _| j|d< | j|d< | j|d< |S )Nr   r  transactionFeesr@   )superto_representationr  r  r@   )r   r.   ret	__class__r   r   r  ;  s   


z$RechargeSerializer.to_representation)r   r   r   r   r   rr   r  r  r  r@   r   r  r  r  r  __classcell__r   r   r  r   r    s    
r  c                   @   r   )PaymentSerializerc                   @   r   )zPaymentSerializer.Meta)r   paidchanger@   r;   salesOrderCostdeliveryCostr  rechargeCostr_  descriptionDetailr   r   rk   r  subscriptionId
rechargeIdrm   N)r   r   r   Paymentr   r   r   r   r   r   r   k  r   r   c                 C   r  r  r  r  r   r   r   r    r  z%PaymentSerializer.get_transactionTypeNr  r   r   r   r   r  h  s    r  c                   @   r   )AccessorySerializerc                   @   r   )zAccessorySerializer.Meta)r   r   r>   r_  r   r   r  N)r   r   r   	Accessoryr   r   r   r   r   r   r     r   r   c           	      C   s   t jjdd}t jjdd}tjj|jdj|d jdtd}tjj|jdj|d jdtd}d}d}|d d urD|d }|d d urN|d }|| }|S )	NInTrans)keyName__icontainsOutTrans)accessoryIdr   rZ  r  Zquantity__sum)rj   r   r+   AccessoryTransactionr   r  r  )	r   r.   inTransoutTransZamountInDataZamountOutDataZamountInZ	amountOutr  r   r   r   rW    s(   



zAccessorySerializer.get_amountN)r   r   r   r   r   r  r   rW  r   r   r   r   r    r  r  c                   @   r   )AccessoryTransactionSerializerc                   @   r   )z#AccessoryTransactionSerializer.Meta)	r   r  r>   r   r   rk   r  r@   rm   N)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   s   |j |j S r  )r  r>   r  r   r   r   	get_total  s   z(AccessoryTransactionSerializer.get_totalc                 C   r  r  r  r  r   r   r   r    r  z2AccessoryTransactionSerializer.get_transactionTypeN)
r   r   r   r   r   r@   rm   r   r  r  r   r   r   r   r    s    r  c                   @   r   )EmployeeSerializerc                   @   r   )zEmployeeSerializer.Meta)r   fullNamer  r  r   r   N)r   r   r   Employeer   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r   )SystemTrafficSerializerc                   @   r   )zSystemTrafficSerializer.Meta)
r   rI   rQ   r  latitude	longitudedeviceIPopenFromr   r   N)r   r   r   SystemTrafficr   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r    r   r  c                   @   r&  )
r  c                   @   r   )zItemDisplaySerializer.Meta)r   r   rG  rH  rI  rM  r3  r   r   re   r?  r   rd  rS  r   Nr?  r   r   r   r   r     r   r   c                 C   r  r  rT  r  r   r   r   rU  	  r  z.ItemDisplaySerializer.get_isFavoriteWithClientc                 C   r   rs  rB  rD  r   r   r   r     rv  zItemDisplaySerializer.get_namec                 C   r  r  re  r  r   r   r   r1    r  z"ItemDisplaySerializer.get_supplierN)r   r   r   r   r   r   r   rS  r   rU  r   r1  r   r   r   r   r    s    r  )rest_frameworkr   snow_flake.modelsdjango.db.modelsr  r   r   r   r   r   r    r"   r$   r&   r0   r2   r4   r6   rA   rJ   rR   rW   r^   rc   rh   rn   rs   rx   r~   r   r   r   r   
Serializerr   ModelSerializerr   r   r   r   r   r   r   r   r   r   r   r   r   rq   r  r	  r  rG   r  rO   r  rV   r!  r\   r%  r'  rf   r8  r9  rD  rE  rv   rJ  rL  rR  r|   rY  rl   r]  r^  rj  rl  rp  rx  rz  r  r   r  r  r  r  r  r  r  r   r  r  r  r  rb   r  r  r  r%  r1  r5  r>  rA  rF  rj  rh  ro  rp  r   r  r{  r  r  r  r  r  r)  r  r  r<  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   s   
	



%
###(%'%%$-($&&*$-$9$xp9 U/:	 X	&l=2 Q2"1'Y!-