o
    @Zf                    @   s  d dl mZ d dlT d dlT d dl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.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 ZG d8d9 d9ejZ G d:d; d;ejZ!G d<d= d=ej"Z#G d>d? d?ej"Z$G d@dA dAej"Z%G dBdC dCej"Z&G dDdE dEej"Z'G dFdG dGej"Z(G dHdI dIej"Z)G dJdK dKej"Z*G dLdM dMej"Z+G dNdO dOej"Z,G dPdQ dQej"Z-G dRdS dSej"Z.G dTdU dUej"Z/G dVdW dWej"Z0G dXdY dYej"Z1G dZd[ d[ej"Z2G d\d] d]ej"Z3G d^d_ d_ej"Z4G d`da daej"Z5G dbdc dcej"Z6G ddde deej"Z7G dfdg dgej"Z8G dhdi diej"Z9G djdk dkej"Z:G dldm dmej"Z;G dndo doej"Z<G dpdq dqej"Z=G drds dsej"Z>G dtdu duej"Z?G dvdw dwej"Z@G dxdy dyej"ZAG dzd{ d{ej"ZBG d|d} d}ej"ZCG d~d de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"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"ZG dd dej"ZG dd dej"ZG dd dej"ZdS (      )serializers)*Nc                 C   sb   | j dr| j d jdd }n| j dr| j d }nd }|d ur/tjj|d}|jr/|S d S )Nrequest
languageIdid)context__contains__query_paramsgetLanguageobjects	isEnabled)selfr   selectedLanguage r   z/Users/waleedhassanin/Documents/snowflake_co_dev_github/snow_flake_back_end_deploy/snow_flake_api/snow_flake/serializer.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   r   c                 C   r   )Nr   isMultipleSKUr   )r   r   r   r   r   getIsMultipleSKU0   r   r   c                 C   r   )Nr   
isShowItemr   )r   ZisSKUDetailr   r   r   getIsShowItem9   r   r    c                 C   r   )Nr   isShowRequestReturnDetailr   )r   r!   r   r   r   getIsShowRequestReturnDetailB   r   r"   c                 C   r   )Nr   isShowShippingItemDetailr   )r   r#   r   r   r   getIsShowShippingItemDetailK   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   getIsFavoriteWithCurrentClientT   s   $r.   c                 C   r   )Nr   isShowCountryr   )r   r/   r   r   r   getIsShowCountry]   r   r0   c                 C   r   )Nr   isShowShippingMethodr   )r   r1   r   r   r   getIsShowShippingMethodf   r   r2   c                 C   r   )Nr   isShowDeliveryManPricer   )r   r3   r   r   r   getIsShowDeliveryManPriceo   r   r4   c                 C   0   t | }tjjt|jjd}t|d|idjS Nr   r   r   )	r   Countryr   r   r*   	countryIdr   CountrySerializerdata)r   r,   r   countryr   r   r   
getCountryz      r=   c                 C       t jjt|jjd}t|jS Nr   )ShippingMethodr   r   r*   shippingMethodIdr   ShippingMethodSerializerr;   )r   r,   shippingMethodr   r   r   getShippingMethod      
rE   c                 C   >   t | }|jd urtjjt|jjd}t|d|idjS d S r6   )	r   countyIdOrStateIdCountyOrStater   r   r*   r   CountyOrStateSerializerr;   )r   r,   r   countyOrStater   r   r   getCountyOrState   
   
rL   c                 C   r5   r6   )	r   
Departmentr   r   r*   departmentIdr   DepartmentDisplaySerializerr;   )r   r,   r   
departmentr   r   r   getDepartment   r>   rR   c                 C   r5   r6   )	r   TransactionTyper   r   r*   transactionTypeIdr   TransactionTypeSerializerr;   )r   r,   r   transactionTyper   r   r   getTransactionType   r>   rW   c                 C   r5   r6   )	r   Taxesr   r   r*   taxesIdr   TaxesSerializerr;   )r   r,   r   taxesr   r   r   getTaxes   r>   r\   c                 C   r5   r6   )	r   PaymentMethodr   r   r*   paymentMethodIdr   PaymentMethodSerializerr;   )r   r,   r   paymentMethodr   r   r   getPaymentMethod   r>   ra   c                 C   r5   r6   )	r   SubscriptionStatusr   r   r*   subscriptionStatusIdr   SubscriptionStatusSerializerr;   )r   r,   r   subscriptionStatusr   r   r   getSubscriptionStatus   r>   rf   c                 C   r5   r6   )	r   SubscriptionTyper   r   r*   subscriptionTypeIdr   SubscriptionTypeSerializerr;   )r   r,   r   subscriptionTyper   r   r   getSubscriptionType   r>   rk   c                 C   r5   r6   )	r   
ReturnCostr   r   r*   returnCostIdr   ReturnCostSerializerr;   )r   r,   r   
returnCostr   r   r   getReturnCost   r>   rp   c                 C   r5   r6   )	r   ReturnStatusr   r   r*   returnStatusIdr   ReturnStatusSerializerr;   )r   r,   r   returnStatusr   r   r   getReturnStatus   r>   ru   c                 C   sJ   t | }t| }t| }t| }tjj|jjd}t	|||||ddj
S )Nr   )r   r   r   r   r7   )r   r   r   r    SKUr   r   skuIdr   SKUSerializerr;   )r   r,   r   r   r   r   skur   r   r   getSKU   s   rz   c                 C   r5   r6   )	r   Clientr   r   r*   r   r   ClientDisplaySerializerr;   )r   r,   r   clientr   r   r   	getClient   r>   r~   c                 C   r?   r@   )Supplierr   r   r*   
supplierIdr   SupplierDisplaySerializerr;   )r   r,   supplierr   r   r   getSupplierInfo   rF   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                   @   s    e Zd ZejddZe ZdS )ShapeDataSerializeri  )
max_lengthN)r   r   r   r   	CharField	shapeNameURLFieldimager   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isDiscountOnMultipleProducts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      r   r   Nr   r   r   r   r   r      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      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_tokenCount	  s   z#SocialLinkSerializer.get_tokenCountN)r   r   r   r   SerializerMethodFieldr   r   r   r   r   r   r   r          r   c                   @   r   )SocialLinkTokenSerializerc                   @   r   )zSocialLinkTokenSerializer.Meta)r   token	longTokentimeInSecondsN)r   r   r   r   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   r     r   r   c                   @   :   e Zd Ze Ze ZG dd dZdd Zdd Z	dS )ProviderSerializerc                   @   r   )zProviderSerializer.Metar   keyNamer   languageListr   r   N)r   r   r   Providerr   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
providerIdr   r   )r   ProviderLanguager   r)   r*   r   r   r   )r   r,   r   providerLanguageListr   r   r   get_name-     
zProviderSerializer.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   ProviderLanguageSerializerr;   )r   r,   r   r   r   r   r   get_languageList4     z#ProviderSerializer.get_languageListN
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r          
r   c                   @   r   )r   c                   @   r   )zProviderLanguageSerializer.Meta)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   )ItemCostSerializerc                   @   r   )zItemCostSerializer.Meta)r   priceInPercentminPricemaxPricer   r   r   N)r   r   r   ItemCostr   r   r   r   r   r   r   I  r   r   Nr   r   r   r   r   r   H  r   r   c                   @   r   )FeesSerializerc                   @   r   )zFeesSerializer.Meta)r   handlingFeespackingFeesr   r   r   N)r   r   r   Feesr   r   r   r   r   r   r   X  r   r   Nr   r   r   r   r   r   W  r   r   c                   @   r   )rZ   c                   @   r   )zTaxesSerializer.Meta)r   pricer   r   N)r   r   r   rX   r   r   r   r   r   r   r   f  r   r   Nr   r   r   r   r   rZ   e  r   rZ   c                   @   r   )OrderFromSerializerc                   @   r   )zOrderFromSerializer.Metar   N)r   r   r   	OrderFromr   r   r   r   r   r   r   t  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   OrderFromLanguageSerializerr;   )r   r,   r   r   r   r   r   r     r   z$OrderFromSerializer.get_languageListNr   r   r   r   r   r   q      
r   c                   @   r   )r   c                   @   r   )z OrderFromLanguageSerializer.Meta)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   )CancelTypeSerializerc                   @   r   )zCancelTypeSerializer.Meta)r   r   r   isPercentager   r   r   r   N)r   r   r   
CancelTyper   r   r   r   r   r   r     r   r   c                 C   r   )NcancelTypeIdr   r   )r   CancelTypeLanguager   r)   r*   r   r   r   )r   r,   r   cancelTypeLanguageListr   r   r   r     r   zCancelTypeSerializer.get_namec                 C   r   )Nr   r   r   Tr   )
r   r   r   r   r)   r*   r   r   CancelTypeLanguageSerializerr;   )r   r,   r   r   r   r   r   r     r   z%CancelTypeSerializer.get_languageListNr   r   r   r   r   r         r   c                   @   r   )r   c                   @   r   )z!CancelTypeLanguageSerializer.Meta)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   )rn   c                   @   r   )zReturnCostSerializer.Meta)r   costr   r   N)r   r   r   rl   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rn     r   rn   c                   @   r   )rs   c                   @   r   )zReturnStatusSerializer.Metar   N)r   r   r   rq   r   r   r   r   r   r   r     r   r   c                 C   r   )Nrr   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   ReturnStatusLanguageSerializerr;   )r   r,   r   r  r   r   r   r     r   z'ReturnStatusSerializer.get_languageListNr   r   r   r   r   rs     r   rs   c                   @   r   )r  c                   @   r   )z#ReturnStatusLanguageSerializer.Meta)r   r   rr   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   )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   TrackStatusLanguageSerializerr;   )r   r,   r   r  r   r   r   r     r   z&TrackStatusSerializer.get_languageListNr   r   r   r   r   r        r  c                   @   r   )r	  c                   @   r   )z"TrackStatusLanguageSerializer.Meta)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PaymentMethodSerializer.Meta)
r   r   r   
fixedPricer   r   r   r   r   r   N)r   r   r   r]   r   r   r   r   r   r   r     r   r   c                 C   r   )Nr^   r   r   )r   PaymentMethodLanguager   r)   r*   r   r   r   )r   r,   r   paymentMethodLanguageListr   r   r   r   -  r   z PaymentMethodSerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r)   r*   r   r   PaymentMethodLanguageSerializerr;   )r   r,   r   r  r   r   r   r   3  r   z(PaymentMethodSerializer.get_languageListNr   r   r   r   r   r_     s    r_   c                   @   r   )r  c                   @   r   )z$PaymentMethodLanguageSerializer.Meta)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   )EligibleTypeSerializerc                   @   r   )zEligibleTypeSerializer.Meta)r   r   	keyOptionr   r   r   r   N)r   r   r   EligibleTyper   r   r   r   r   r   r   J  r   r   c                 C   r   )NeligibleTypeIdr   r   )r   EligibleTypeLanguager   r)   r*   r   r   r   )r   r,   r   eligibleTypeLanguageListr   r   r   r   V  r   zEligibleTypeSerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r)   r*   r   r   EligibleTypeLanguageSerializerr;   )r   r,   r   r  r   r   r   r   \  r   z'EligibleTypeSerializer.get_languageListNr   r   r   r   r   r  G  r   r  c                   @   r   )r  c                   @   r   )z#EligibleTypeLanguageSerializer.Meta)r   r   r  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                   @   r   )r:   c                   @   r   )zCountrySerializer.Meta)r   isActiveisMainBranchr   r   r   r   N)r   r   r   r8   r   r   r   r   r   r   r   s  r   r   c                 C   r   )Nr9   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   CountryLanguageSerializerr;   )r   r,   r   r  r   r   r   r     r   z"CountrySerializer.get_languageListNr   r   r   r   r   r:   p  r   r:   c                   @   r   )r  c                   @   r   )zCountryLanguageSerializer.Meta)r   r   r9   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   )rJ   c                   @   r   )zCountyOrStateSerializer.Meta)r   r  r   r   r   r   r9   N)r   r   r   rI   r   r   r   r   r   r   r     r   r   c                 C   r   )NrH   r   r   )r   CountyOrStateLanguager   r)   r*   r   r   r   )r   r,   r   countyOrStateLanguageListr   r   r   r     r   z CountyOrStateSerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r)   r*   r   r   CountyOrStateLanguageSerializerr;   )r   r,   r   r   r   r   r   r     r   z(CountyOrStateSerializer.get_languageListNr   r   r   r   r   rJ     r   rJ   c                   @   r   )r!  c                   @   r   )z$CountyOrStateLanguageSerializer.Meta)r   r   rH   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   )rC   c                   @   r   )zShippingMethodSerializer.Meta)	r   r   r   r   r   
isInternalisGlobalr   r   N)r   r   r   rA   r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rC     r   rC   c                   @   r   )ShippingMethodCountrySerializerc                   @   r   )z$ShippingMethodCountrySerializer.Meta)r   r   r   r9   rB   r<   rD   N)r   r   r   ShippingMethodCountryr   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   )r0   r   r=   )r   r,   r/   r   r   r   get_country     
z+ShippingMethodCountrySerializer.get_countryc                 C   r&  r'  )r2   r   rE   )r   r,   r1   r   r   r   get_shippingMethod  r)  z2ShippingMethodCountrySerializer.get_shippingMethodN)
r   r   r   r   r   r<   rD   r   r(  r*  r   r   r   r   r$    r
  r$  c                   @   s   e Zd 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S )DepartmentSerializerc                   @   r   )zDepartmentSerializer.Meta)r   r   r   r   
isSelected	isPopular	isVisibleisUseItemImageLink
totalViewsr   r   r   rO   mainDepartment	itemCountitemImageLink	imageListisHasSubDepartmentNr   r   r   rN   r   r   r   r   r   r   r     r   r   c                 C   s,   t | }|d ur|jd urt| |S d S d S N)r   rO   rR   r   r,   r   r   r   r   get_mainDepartment  s   

z'DepartmentSerializer.get_mainDepartmentc                 C   s   |j dkr^d }d }d }|jd u r"tjj|jd }|d ur!|j}n|j}|d ur@tjj|d }|d ur@tjj|jd }|d ur\|j	d urV|j	rXt
|j	drZ|j	jS d S d S d S d S d S )NTrO   r%   r   )r/  rO   rN   r   r)   r   firstItemrv   r   hasattrr   )r   r,   ZdeparmentTempr   selectedSKUselectedItemr   r   r   get_itemImageLink  s,   


z&DepartmentSerializer.get_itemImageLinkc                 C   s(   t | }|d urtjj|jd S d S )Nr:  )r   r<  r   r)   r   r+   r8  r   r   r   get_itemCount1  s   z"DepartmentSerializer.get_itemCountc                 C   s$   t jj|jd }|dkrdS dS )Nr:  r   TF)rN   r   r)   r   r+   )r   r,   r+   r   r   r   get_isHasSubDepartment6  s   z+DepartmentSerializer.get_isHasSubDepartmentc                 C   r   Nr:  r   r   r   DepartmentLanguager   r)   r*   r   r   r   r   r,   r   departmentLanguageListr   r   r   r   =  r   zDepartmentSerializer.get_namec                 C   r   )Nr   r:  r   Tr   )
r   r   rE  r   r)   r*   r   r   DepartmentLanguageSerializerr;   )r   r,   r   rG  r   r   r   r   C  r   z%DepartmentSerializer.get_languageListc                 C   s   g }g }t jjtddj|jdjddjddddd	 }|D ]}tjj|jd
}| dkr:|	|d  q#t
|ddjS )Nitem_skuZitem_sku_countr:  T
isApprovedr   Zitem_sku_count__gt-createdDate   r%   r   )r<  r   annotateCountr)   r   order_byrv   r   appendSKUBasicSerializerr;   )r   r,   itemListskuListitemselectedSKUListr   r   r   get_imageListK  s   :z"DepartmentSerializer.get_imageListN)r   r   r   r   r   r1  r2  r3  r5  r   r   r4  r   r9  r@  rA  rB  r   r   rY  r   r   r   r   r+    s     r+  c                   @   r   )rH  c                   @   r   )z!DepartmentLanguageSerializer.Meta)r   r   rO   r   N)r   r   r   rE  r   r   r   r   r   r   r   ^  r   r   Nr   r   r   r   r   rH  ]  r   rH  c                   @   r   )rP   c                   @   r   )z DepartmentDisplaySerializer.Meta)r   r   r   rO   Nr6  r   r   r   r   r   i  r   r   c                 C   r   rC  rD  rF  r   r   r   r   q  r   z$DepartmentDisplaySerializer.get_nameNr   r   r   r   r   r   r   r   r   r   r   r   rP   g      rP   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 )
BrandSerializerc                   @   r   )zBrandSerializer.Meta)
r   r   r.  r   r   r/  r   r   r   r3  Nr   r   r   Brandr   r   r   r   r   r   r   }  r   r   c                 C   s   |j dkrC|j}d }|d ur%tjj|d }|d ur%tjj|jd }|d urA|jd ur;|jr=t|jdr?|jj	S d S d S d S d S d S )NTbrandIdr%   r   )
r/  r   r<  r   r)   r;  rv   r   r=  r   )r   r,   r   r>  r?  r   r   r   r@    s   

z!BrandSerializer.get_itemImageLinkc                 C   r   Nr`  r   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   rd  r   r)   r*   r   r   BrandLanguageSerializerr;   )r   r,   r   rf  r   r   r   r     r   z BrandSerializer.get_languageListN)r   r   r   r   r   r   r   r3  r   r@  r   r   r   r   r   r   r]  y  s    r]  c                   @   r   )rg  c                   @   r   )zBrandLanguageSerializer.Meta)r   r   ra  r   N)r   r   r   rd  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rg    r   rg  c                   @   r   )BrandDisplaySerializerc                   @   r   )zBrandDisplaySerializer.Meta)r   r   r   Nr^  r   r   r   r   r     r   r   c                 C   r   rb  rc  re  r   r   r   r     r   zBrandDisplaySerializer.get_nameNrZ  r   r   r   r   rh    s    rh  c                   @   r   )rd   c                   @   r   )z!SubscriptionStatusSerializer.Metar   N)r   r   r   rb   r   r   r   r   r   r   r     r   r   c                 C   r   )Nrc   r   r   )r   SubscriptionStatusLanguager   r)   r*   r   r   r   )r   r,   r   subscriptionStatusLanguageListr   r   r   r     r   z%SubscriptionStatusSerializer.get_namec                 C   r   )Nr   ri  r   Tr   )
r   r   rj  r   r)   r*   r   r   $SubscriptionStatusLanguageSerializerr;   )r   r,   r   rk  r   r   r   r     r   z-SubscriptionStatusSerializer.get_languageListNr   r   r   r   r   rd     r   rd   c                   @   r   )rl  c                   @   r   )z)SubscriptionStatusLanguageSerializer.Meta)r   r   rc   r   N)r   r   r   rj  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rl    r   rl  c                   @   r   )SubscriptionOptionSerializerc                   @   r   )z!SubscriptionOptionSerializer.Metar   N)r   r   r   SubscriptionOptionr   r   r   r   r   r   r     r   r   c                 C   r   )NsubscriptionOptionIdr   r   )r   SubscriptionOptionLanguager   r)   r*   r   r   r   )r   r,   r   subscriptionOptionLanguageListr   r   r   r     r   z%SubscriptionOptionSerializer.get_namec                 C   r   )Nr   ro  r   Tr   )
r   r   rq  r   r)   r*   r   r   $SubscriptionOptionLanguageSerializerr;   )r   r,   r   rr  r   r   r   r     r   z-SubscriptionOptionSerializer.get_languageListNr   r   r   r   r   rm    r   rm  c                   @   r   )rs  c                   @   r   )z)SubscriptionOptionLanguageSerializer.Meta)r   r   rp  r   N)r   r   r   rq  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rs    r   rs  c                   @   r   )ri   c                   @   r   )zSubscriptionTypeSerializer.Meta)r   r   r   costPerMonthr   discountserviceCostdurationInMonthr   r   r   rp  N)r   r   r   rg   r   r   r   r   r   r   r     r   r   c                 C   r   )Nrh   r   r   )r   SubscriptionTypeLanguager   r)   r*   r   r   r   )r   r,   r   subscriptionTypeLanguageListr   r   r   r   +  r   z#SubscriptionTypeSerializer.get_namec                 C   r   )Nr   rx  r   Tr   )
r   r   ry  r   r)   r*   r   r   "SubscriptionTypeLanguageSerializerr;   )r   r,   r   rz  r   r   r   r   1  r   z+SubscriptionTypeSerializer.get_languageListNr   r   r   r   r   ri     s    ri   c                   @   r   )r{  c                   @   r   )z'SubscriptionTypeLanguageSerializer.Meta)r   r   rh   r   N)r   r   r   ry  r   r   r   r   r   r   r   :  r   r   Nr   r   r   r   r   r{  9  r   r{  c                   @   r   )rU   c                   @   r   )zTransactionTypeSerializer.Metar   N)r   r   r   rS   r   r   r   r   r   r   r   H  r   r   c                 C   r   )NrT   r   r   )r   TransactionTypeLanguager   r)   r*   r   r   r   )r   r,   r   transactionTypeLanguageListr   r   r   r   R  r   z"TransactionTypeSerializer.get_namec                 C   r   )Nr   r|  r   Tr   )
r   r   r}  r   r)   r*   r   r   !TransactionTypeLanguageSerializerr;   )r   r,   r   r~  r   r   r   r   X  r   z*TransactionTypeSerializer.get_languageListNr   r   r   r   r   rU   E  r   rU   c                   @   r   )r  c                   @   r   )z&TransactionTypeLanguageSerializer.Meta)r   r   rT   r   N)r   r   r   r}  r   r   r   r   r   r   r   a  r   r   Nr   r   r   r   r   r  `  r   r  c                   @   sj   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d Zdd ZdS )NewArrivalSerializerc                   @   r   )zNewArrivalSerializer.Meta)r   r   descriptionr   r   r   r   r4  Nr   r   r   
NewArrivalr   r   r   r   r   r   r   q  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   r  )r   r  r   r)   r*   r   r   r  r  r   r   r   get_description  r   z$NewArrivalSerializer.get_descriptionc                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r)   r*   r   r   NewArrivalLanguageSerializerr;   )r   r,   r   r  r   r   r   r     r   z%NewArrivalSerializer.get_languageListc                 C   s   |D ]
}|j |kr dS qdS )NTF)r   )r   listr   ir   r   r   checkShapeInList  s
   
z%NewArrivalSerializer.checkShapeInListc                 C   sn   g }|D ]0}|d  d}| dkr4| ||d s4t|d d|d d}|| | dkr4 |S q|S )Nr   ,r    r%   rO  )splitr   r  	ShapeDatarS  )r   rU  newItemListr  nameListshaper   r   r   
filterList  s   
 zNewArrivalSerializer.filterListc           	      C   s   g }g }t jjtddddj|jdjddjdd	d
 }g }|D ]/}|d 	d}|
 dkrV| ||d sVt|d d|d d}|| |
 dkrV nq'|D ]}tjj|jd}|
 dkrp||d  qYt|ddjS )NrI  rJ  r   item_itemlanguage__namer  r   rM  TrK  rN  r   r  r  r%   rO  r   )r<  r   rP  rQ  values_listr)   r   rR  distinctr  r   r  r  rS  rv   r&   rT  r;   )	r   r,   rU  rV  r  r  r  r  rX  r   r   r   rY    s&   >
z"NewArrivalSerializer.get_imageListN)r   r   r   r   r   r   r  r   r4  r   r   r  r   r  r  rY  r   r   r   r   r  l  s    r  c                   @   r   )r  c                   @   r   )z!NewArrivalLanguageSerializer.Meta)r   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   )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   r  r  r  r   r   r   r     r   z$NewArrivalDisplaySerializer.get_nameNrZ  r   r   r   r   r    s    r  c                   @   r   )AppContentSerializerc                   @   r   )zAppContentSerializer.Meta)r   r   r  isSliderFlag
navigateTor/  isUrlr   r   r   r3  r4  N)r   r   r   
AppContentr   r   r   r   r   r   r     r   r   c                 C   s2  |j dkrd }d }|jdkrtjjdd }nS|jdkr'tjjdd }nD|jdkr6tjjdd }n5|jd	krEtjjdd
 }n&|jdkrkd }tjjdd }|d urktjj|jd}| dkrk|d }|d uryt	jj|jd }|d ur|j
d ur|j
rt|j
dr|j
jS d S d S d S d S d S )NTbanr   )ZtotalViews__gtetp)isTopfp)
isFavoritemdp)item_sku__discount__gtsd)r,  r:  r%   r   )r/  r   r<  r   r)   r;  rN   r   r   rv   r   r=  r   )r   r,   r?  r>  ZselectedDepartmentZselectedItemListr   r   r   r@    s8   






z&AppContentSerializer.get_itemImageLinkc                 C   s   g }|j dkrtjjddd}nO|j dkr"tjjddd}n?|j dkr2tjjddd}n/|j d	krBtjjdd
d}n|j dkrRtjjddd}n|j dkratjjddd}t|ddjS )Nr  T)
topProductrN  r  )favoriteProductr  )mostDiscountProductr  )bannerProductr  )selectedDepartmentProductZnwap)newArrivalProductr   )r   rv   r   r)   rR  rT  r;   )r   r,   rV  r   r   r   rY  !  s   





z"AppContentSerializer.get_imageListN)
r   r   r   r   r   r3  r4  r   r@  rY  r   r   r   r   r    s     r  c                   @   r   )CouponSerializerc                   @   r   )zCouponSerializer.Meta)r   coderu  	startDateendDater  r   r   N)r   r   r   Couponr   r   r   r   r   r   r   :  r   r   Nr   r   r   r   r   r  9  r   r  c                   @   z   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 )ClientSerializerc                   @   r   )zClientSerializer.Meta)r   	firstNamelastNameemailpasswordr   r   r   selectedLanguageIdproviderr   	phoneListcreditCardListaddressBookListwalletNr   r   r   r{   r   r   r   r   r   r   r   P  r   r   c                 C   r5   r6   )	r   r   r   r   r*   r   r   r   r;   )r   r,   r   r  r   r   r   get_providerc  r>   zClientSerializer.get_providerc                 C   "   t jjt|jd}t|ddjS Nr'   Tr   )ClientPhoner   r)   r*   r   ClientPhoneSerializerr;   r   r,   r  r   r   r   get_phoneListh     zClientSerializer.get_phoneListc                 C   r  r  )ClientCreditCardr   r)   r*   r   ClientCreditCardSerializerr;   r   r,   r  r   r   r   get_creditCardListl  r  z#ClientSerializer.get_creditCardListc                 C   s<   t | }|d urtjjt|jd}t|dd|idjS g S )Nr'   Tr   r   r   )r   ClientAddressBookr   r)   r*   r   ClientAddressBookSerializerr;   )r   r,   r   r  r   r   r   get_addressBookListp  s
   z$ClientSerializer.get_addressBookListc                 C   r?   r@   r   r   r   r*   r  r   r   r;   r   r,   r   r   r   r   get_selectedLanguagex  rF   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   WalletSerializerr;   )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   r   r  I  s    r  c                   @   r   )r|   c                   @   r   )zClientDisplaySerializer.Meta)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ClientPhoneSerializer.Meta)r   phoner   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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   homeNumberAndStreetName
townOrCitypostCoder   r   r9   rH   r   r<   rK   N)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   
   t | |S r7  r=   r   r,   r   r   r   r(       
z'ClientAddressBookSerializer.get_countryc                 C   r  r7  rL   r  r   r   r   get_countyOrState  r  z-ClientAddressBookSerializer.get_countyOrStateN)
r   r   r   r   r   r<   rK   r   r(  r  r   r   r   r   r    s    r  c                   @   r  )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   r|  walletId-idTransactionr   r)   r   r   rR  r+   r  r   r   r   get_inCount     $zWalletSerializer.get_inCountc                 C   r  )N   r|  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   r|  r  r  amountamount__sumr   r  r   r)   r   r   rR  	aggregateSum)r   r,   	inValDictinValr   r   r   	get_inSum     *zWalletSerializer.get_inSumc                 C   r  )Nr  r|  r  r  r  r  r   r  )r   r,   
outValDictoutValr   r   r   
get_outSum  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   r|  r  r  r  r  r   r,   r  r  r  r  totalr   r   r   get_transCount  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   r|  r  r  r  r  r  r   r  r  r   r   r   get_transSum  s$   **	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   rT   r  rV   N)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   r  r7  rW   r  r   r   r   get_transactionType  r  z)TransactionSerializer.get_transactionTypeNr   r   r   r   r   rV   r   r  r   r   r   r   r	    r   r	  c                       s   e Zd Ze Ze Ze Ze Ze Z	e Z
dZdZdZdZdZdZdZd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 fddZ  ZS )PurchaseOrderSerializerr   c                   @   r   )zPurchaseOrderSerializer.Meta)r   r   r   r   	sessionIdpaymentIntentId
isCanceled
isRefundedr^   rY   r   r   couponIdr   r`   	orderFromcoupon
cancelTyper}   countSalesOrderN)r   r   r   PurchaseOrderr   r   r   r   r   r   r   2  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_countSalesOrderK  s   z+PurchaseOrderSerializer.get_countSalesOrderc                 C   r  r7  ra   r  r   r   r   get_paymentMethodO  r  z)PurchaseOrderSerializer.get_paymentMethodc                 C   r5   r6   )	r   r   r   r   r*   r   r   r   r;   )r   r,   r   r  r   r   r   get_orderFromR  r>   z%PurchaseOrderSerializer.get_orderFromc                 C   rG   r6   )	r   r   r   r   r   r*   r   r   r;   )r   r,   r   r  r   r   r   get_cancelTypeW  rM   z&PurchaseOrderSerializer.get_cancelTypec                 C   .   |j d urtjjt|j jd}t|jS d S r@   )r  r  r   r   r*   r   r  r;   )r   r,   r  r   r   r   
get_coupon]     

z"PurchaseOrderSerializer.get_couponc                 C   r  r@   )r   r{   r   r   r*   r   r|   r;   )r   r,   r}   r   r   r   
get_clientb  r   z"PurchaseOrderSerializer.get_clientc                 C   sT  t jj|jd}|D ]o}tjj|jd}|D ]G}t|}| j|j | _| j|j	|j  | _| j
|jd |j  | _
| j|jd |j  | _| j|jd |j  | _| j|jd |j  | _q|jd urytjjt|jjd}|d ury| j|j | _q
|jdkr| jd	kr| j| j
 d
 | _n| j
| _| j| j | _|jd ur| j|jj | _d S d S )N)purchaseOrderIdshippingItemIdofferedPriceservicer[   r`   r   Tr   r  )ShippingItemr   r)   r   PurchaseShippingItemPurchaseShippingItemSerializersumQuantitydeliveredQuantitysubTotalMinskuPricesubTotalMaxr;   
sumServicesumTaxessumPaymentMethodrB   rA   r   r*   sumDeliveryr   r   r  r  ru  )r   r,   ZshippingItemListcurrentpurchaseShippingItemListpurchaseShippingItemZpsisZselectedShippingMethoddr   r   r   	calculateg  s.   

z!PurchaseOrderSerializer.calculatec                    s   t  |}d| _d| _d| _d| _d| _d| _d| _d| _	| 
| | j|d< | j|d< | j|d< | j|d< | j|d< | j|d< |jdkrY| jd	krY| j| j| j d
  |d< nd|d< | j	|d< |S )Nr   r,  r.  r2  r/  r0  r1  Tr   r  ru  r  )superto_representationr,  r.  r2  r/  r0  r1  r*  r  r6  r   r   r,   ret	__class__r   r   r8    s*   







z)PurchaseOrderSerializer.to_representation)r   r   r   r   r   r`   r  r  r  r}   r  r,  r.  r2  r/  r0  r1  r*  r  r   r  r  r  r  r  r!  r6  r8  __classcell__r   r   r;  r   r  !  s0    r  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 )SupplierSerializerc                   @   r   )zSupplierSerializer.Meta)r   r   r  r  
isVerifiedr   r   r  isFreeSubscriptionUsedr   r  r  documentListcurrentSubscriptionNr   r   r   r   r   r   r   r   r   r   r     r   r   c                 C   r?   r@   r  r  r   r   r   r    rF   z'SupplierSerializer.get_selectedLanguagec                 C   r  Nr   Tr   )SupplierPhoner   r)   r*   r   SupplierPhoneSerializerr;   r  r   r   r   r    r  z SupplierSerializer.get_phoneListc                 C   r  rE  )SupplierCreditCardr   r)   r*   r   SupplierCreditCardSerializerr;   r  r   r   r   r    r  z%SupplierSerializer.get_creditCardListc                 C   r  rE  )SupplierDocumentr   r)   r*   r   SupplierDocumentSerializerr;   )r   r,   rB  r   r   r   get_documentList  r  z#SupplierSerializer.get_documentListc                 C   st   t jjdd}| dkr6tjj|d jdj|jd}| dkr8t| }t| }t|d ||ddj	S d S d S )Nactive)r   r   ri  rF  r   r   r7   )
rb   r   r)   r   Subscriptionr   r   r   SubscriptionSerializerr;   )r   r,   
statusListZcurrentSubscriptionListr   r   r   r   r   get_currentSubscription  s   z*SupplierSerializer.get_currentSubscriptionN)r   r   r   r   r   r  r  rB  r   rC  r   r  r  r  rM  rS  r   r   r   r   r?    s    r?  c                   @   r   )r   c                   @   r   )zSupplierDisplaySerializer.Meta)r   r   r@  NrD  r   r   r   r   r     r   r   Nr   r   r   r   r   r     r   r   c                   @   r   )rH  c                   @   r   )zSupplierPhoneSerializer.Meta)r   r  r   r   r   N)r   r   r   rG  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rH    r   rH  c                   @   r   )rJ  c                   @   r   )z!SupplierCreditCardSerializer.Meta)r   r  r  r  r  r   r   r   N)r   r   r   rI  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rJ    r   rJ  c                   @   r   )rL  c                   @   r   )zSupplierDocumentSerializer.Meta)r   fileNamecontentTypefileDocumentr   r   r   N)r   r   r   rK  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rL    r   rL  c                   @   r   )rQ  c                   @   r   )zSubscriptionSerializer.Meta)r   r   ru  rv  r  r  r   r   r   rh   rc   rj   re   N)r   r   r   rP  r   r   r   r   r   r   r   
  r   r   c                 C   r  r7  rk   r  r   r   r   get_subscriptionType  r  z+SubscriptionSerializer.get_subscriptionTypec                 C   r  r7  rf   r  r   r   r   get_subscriptionStatus  r  z-SubscriptionSerializer.get_subscriptionStatusN
r   r   r   r   r   rj   re   r   rX  rZ  r   r   r   r   rQ        rQ  c                   @   r   )DeliveryManSerializerc                   @   r   )zDeliveryManSerializer.Meta)	r   r   r  r  r   r   r  r   r  Nr   r   r   DeliveryManr   r   r   r   r   r   r   &  r   r   c                 C   r?   r@   r  r  r   r   r   r  4  rF   z*DeliveryManSerializer.get_selectedLanguagec                 C   r  )NdeliveryManIdTr   )DeliveryManPhoner   r)   r*   r   DeliveryManPhoneSerializerr;   r  r   r   r   r  8  r  z#DeliveryManSerializer.get_phoneListN)
r   r   r   r   r   r   r  r   r  r  r   r   r   r   r]  #  s    r]  c                   @   r   )DeliveryManDisplaySerializerc                   @   r  )z!DeliveryManDisplaySerializer.Metar   r   Nr^  r   r   r   r   r   =  r  r   Nr   r   r   r   r   rd  <  r   rd  c                   @   r   )rc  c                   @   r   )zDeliveryManPhoneSerializer.Meta)r   r  r   r   ra  N)r   r   r   rb  r   r   r   r   r   r   r   G  r   r   Nr   r   r   r   r   rc  F  r   rc  c                   @   r   )DeliveryManPriceSerializerc                   @   r   )zDeliveryManPriceSerializer.Meta)r   r   r   r   rB   ra  N)r   r   r   DeliveryManPricer   r   r   r   r   r   r   T  r   r   Nr   r   r   r   r   re  S  r   re  c                   @   r  )ShippingItemSerializerc                   @   r   )zShippingItemSerializer.Meta)r   r   r   rB   feesIdr"  isSalesOrderCreatedr  isValidAndPaidrD   feesshippingAddressr4  N)r   r   r   r'  r   r   r   r   r   r   r   h  r   r   c                 C   s    t jjt|jd rdS dS )Nr#  TF)r  r   r)   r*   r   r  r  r   r   r   get_isSalesOrderCreatedz  s   z.ShippingItemSerializer.get_isSalesOrderCreatedc                 C      |j jS r7  )r"  r  r  r   r   r   get_isCanceled     z%ShippingItemSerializer.get_isCanceledc                 C   \   |j d ur*tjjt|j jd r,t| }tjjt|j jd}t	|d|idj
S d S d S r6   )rB   rA   r   r)   r*   r   r  r   r   rC   r;   )r   r,   r   rD   r   r   r   r*       
z)ShippingItemSerializer.get_shippingMethodc                 C   rq  r6   )rh  r   r   r)   r*   r   r  r   r   r   r;   )r   r,   r   rk  r   r   r   get_fees  rr  zShippingItemSerializer.get_feesc                 C   sT   t | }tjjt|jd r(t| }tjjt|jd}t	|||ddj
S d S )Nr#  )r   r3   r7   )r4   ShippingAddressr   r)   r*   r   r  r   r   ShippingAddressSerializerr;   )r   r,   r3   r   rl  r   r   r   get_shippingAddress  s   z*ShippingItemSerializer.get_shippingAddressc           	   	   C   sx   t | }|d ur8t|dkr:t| }t| }t| }t| }t| }tjj	|j
d}t|d|||||ddjS d S d S )Nr   r#  T)r   r   r   r   r!   r  )r$   intr   r   r   r    r"   r(  r   r)   r   r)  r;   )	r   r,   r#   r   r   r   r   r!   r5  r   r   r   get_purchaseShippingItemList  s   z3ShippingItemSerializer.get_purchaseShippingItemListN)r   r   r   r   r   ri  r  rD   rk  rl  r4  r   rm  ro  r*  rs  rv  rx  r   r   r   r   rg  a  s    rg  c                   @   r>  )ru  c                   @   r   )zShippingAddressSerializer.Meta)r$  trackNumberr  r  r  r  r   r   r9   rH   ra  r<   rK   deliveryMandeliveryManPrice	trackListN)r   r   r   rt  r   r   r   r   r   r   r     r   r   c                 C   r  r7  r  r  r   r   r   r(    r  z%ShippingAddressSerializer.get_countryc                 C   r  r7  r  r  r   r   r   r    r  z+ShippingAddressSerializer.get_countyOrStatec                 C   s>   |j d urt| }tjjt|j jd}t|d|idjS d S r6   )	ra  r   r_  r   r   r*   r   rd  r;   )r   r,   r   rz  r   r   r   get_deliveryMan  s
   
z)ShippingAddressSerializer.get_deliveryManc                 C   st   |j d ur2t| }|d ur4t|tdkr6tjj|j jdj|jjjd}|	 dkr8t
|d jS d S d S d S d S )Nr   r`  )rB   r   )ra  r4   r   rf  r   r)   r   r$  rB   r   re  r;   )r   r,   r3   ZdeliveryManPriceListr   r   r   get_deliveryManPrice  s   
 z.ShippingAddressSerializer.get_deliveryManPricec                 C   s4   t | }tjj|jjdd}t|dd|idjS )N)shippingAddressIdr  Tr   r  )	r   Trackr   r)   r$  r   rR  TrackSerializerr;   )r   r,   r   r|  r   r   r   get_trackList  s   z'ShippingAddressSerializer.get_trackListN)r   r   r   r   r   r<   rK   rz  r{  r|  r   r(  r  r}  r~  r  r   r   r   r   ru    s    	ru  c                   @   r   )r  c                   @   r   )zTrackSerializer.Meta)r   r   r   r  r  trackStatusN)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   r5   r6   )	r   r  r   r   r*   r  r   r  r;   )r   r,   r   r  r   r   r   get_trackStatus  r>   zTrackSerializer.get_trackStatusN)r   r   r   r   r   r  r   r  r   r   r   r   r        
r  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   s`   t | }|d ur,t|dkr.t| }t| }tjjt|jj	d}t
||||ddjS d S d S )Nr   r   )r   r   r#   r7   )r   rw  r   r$   r'  r   r   r*   r$  r   rg  r;   )r   r,   r   r   r#   r  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   rw  r   r8  r   r   r   get_supplier	  s   
z!SalesOrderSerializer.get_supplierc                 C   s8   t | }t| }tjj|jjd}t|d||ddjS )N)salesOrderIdT)r   r   r  )	r    r   SalesOrderItemr   r)   r$  r   SalesOrderItemSerializerr;   )r   r,   r   r   ZsalesOrderItemr   r   r   get_salesOrderItemList  s   z+SalesOrderSerializer.get_salesOrderItemListN)r   r   r   r   r   r  r   r  r   r  r  r  r   r   r   r   r    s    	r  c                   @   r   )ItemSubscriptionSerializerc                   @   r   )zItemSubscriptionSerializer.Meta)r   r   ru  rv  r  r  r   r   r&   rh   rc   rj   re   N)r   r   r   ItemSubscriptionr   r   r   r   r   r   r     r   r   c                 C   r  r7  rW  r  r   r   r   rX  +  r  z/ItemSubscriptionSerializer.get_subscriptionTypec                 C   r  r7  rY  r  r   r   r   rZ  .  r  z1ItemSubscriptionSerializer.get_subscriptionStatusNr[  r   r   r   r   r    r\  r  c                       s   e Zd Ze Ze Ze Ze ZdZ	d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dd Zdd Z  ZS )r)  r   c                   @   r   )z#PurchaseShippingItemSerializer.Meta)r   r%  r-  skuDiscountr+  returnedQuantitycanceledQuantityr   r   
itemCostIdrw   r$  itemCostry   canRequestReturnAgainrequestReturnListN)r   r   r   r(  r   r   r   r   r   r   r   ?  r   r   c                 C   rG   r6   )	r   r  r   r   r   r*   r   r   r;   )r   r,   r   r  r   r   r   get_itemCostS  rM   z+PurchaseShippingItemSerializer.get_itemCostc                 C   r  r7  rz   r  r   r   r   get_skuY  r  z&PurchaseShippingItemSerializer.get_skuc                 C   s  t jjt|jjd}|d ur| j|j|j d  | _t	jj|j
jjd}|d ur3| j|j |j | _|j
jjd urTtjjt|j
jjjd}|d urT| j|j d | _|j| j | j }|j
jjd urtjjt|j
jjjd}|d ur|jdkr||j }|d|jd   }|| | _n||j | _t| jd d | _t| jd d | _t| jd d | _|| j }t|| _| j| j|j d  | _t| j| _d S )Nr   d   Tr   )r   r   r   r*   r  r   r&  r-  r   r   r$  rh  r   r   r"  rY   rX   r   r[   r^   r]   r   r  r`   mathceilr%  r  displayedPrice)r   r,   r  rk  ZtaxesObjectZ
finalPriceZpaymentMethodObjectpreTotalr   r   r   calculateItemPrice\  s4   


z1PurchaseShippingItemSerializer.calculateItemPricec                    sj   t  |}d| _d| _d| _d| _d| _| | | j|d< | j|d< | j|d< | j|d< | j|d< |S )Nr   r&  r[   r`   r%  r  )r7  r8  r&  r[   r`   r%  r  r  r9  r;  r   r   r8    s   





z0PurchaseShippingItemSerializer.to_representationc                 C   sZ   t | }|d ur)t|dkr+t| }t| }tjj|jd}t|d||ddj	S d S d S )Nr   purchaseShippingItemIdTrO  r  )
r"   rw  r   r   RequestReturnr   r)   r   RequestReturnSerializerr;   )r   r,   r!   r   r   ZrequestReturnr   r   r   get_requestReturnList  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,   r;   sumddiffr   r   r   get_canRequestReturnAgain  s    


z8PurchaseShippingItemSerializer.get_canRequestReturnAgain)r   r   r   r   r   r  ry   r  r  r&  r[   r`   r%  r  r   r  r  r  r8  r  r  r=  r   r   r;  r   r)  3  s"    '	r)  c                   @   r   )r  c                   @   r   )zRequestReturnSerializer.Meta)r   headLiner  issuenoter   r   rm   rr   r  rt   ro   Nr   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   r  r7  rp   r  r   r   r   get_returnCost  r  z&RequestReturnSerializer.get_returnCostc                 C   r  r7  ru   r  r   r   r   get_returnStatus  r  z(RequestReturnSerializer.get_returnStatusN)
r   r   r   r   r   ro   rt   r   r  r  r   r   r   r   r    r\  r  c                   @   r\  )
RequestReturnSerializerDetailc                   @   r   )z"RequestReturnSerializerDetail.Meta)r   r  r  r  r  r   r   rm   rr   r  rt   ro   r5  Nr  r   r   r   r   r     r   r   c                 C   r  r7  r  r  r   r   r   r    r  z,RequestReturnSerializerDetail.get_returnCostc                 C   r  r7  r  r  r   r   r   r    r  z.RequestReturnSerializerDetail.get_returnStatusc                 C   sD   t | }t| }t| }tjjt|jjd}t	||||ddj
S )Nr   r   r   r   r7   )r   r   r    r(  r   r   r*   r  r   r)  r;   )r   r,   r   r   r   r5  r   r   r   get_purchaseShippingItem  s
   z6RequestReturnSerializerDetail.get_purchaseShippingItemN)r   r   r   r   r   ro   rt   r5  r   r  r  r  r   r   r   r   r    s    r  c                   @   r   )r  c                   @   r   )zSalesOrderItemSerializer.Meta)r   quantityr   r   r   rw   r  ry   N)r   r   r   r  r   r   r   r   r   r   r     r   r   c                 C   r  r7  r  r  r   r   r   r   	  r  z SalesOrderItemSerializer.get_skuNr   r   r   r   r   ry   r   r  r   r   r   r   r        r  c                   @   r   )ClientItemRateReviewSerializerc                   @   r   )z#ClientItemRateReviewSerializer.Meta)	r   r  ratecommentr   r   r&   r   r}   N)r   r   r   ClientItemRateReviewr   r   r   r   r   r   r   	  r   r   c                 C   r  r7  r~   r  r   r   r   r!  	  r  z)ClientItemRateReviewSerializer.get_clientNr   r   r   r   r   r}   r   r!  r   r   r   r   r  	      r  c                   @   r   )"ClientSupplierRateReviewSerializerc                   @   r   )z'ClientSupplierRateReviewSerializer.Meta)	r   r  r  r  r   r   r   r   r}   N)r   r   r   ClientSupplierRateReviewr   r   r   r   r   r   r   	  r   r   c                 C   r  r7  r  r  r   r   r   r!  (	  r  z-ClientSupplierRateReviewSerializer.get_clientNr  r   r   r   r   r  	  r  r  c                   @   r   )FeedbackSerializerc                   @   r   )zFeedbackSerializer.Meta)r   r  r  r  r   r   r   r}   N)r   r   r   Feedbackr   r   r   r   r   r   r   /	  r   r   c                 C   r  r7  r  r  r   r   r   r!  ;	  r  zFeedbackSerializer.get_clientNr  r   r   r   r   r  -	  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   B	  r   r   c                 C   r  r7  r  r  r   r   r   r!  O	  r  zRequestSerializer.get_clientNr  r   r   r   r   r  @	  r  r  c                   @   r   )PolicyTypeSerializerc                   @   r   )zPolicyTypeSerializer.Meta)r   r   r   r   N)r   r   r   
PolicyTyper   r   r   r   r   r   r   U	  r   r   Nr   r   r   r   r   r  T	  r   r  c                   @   r\  )
PolicyHeaderSerializerc                   @   r   )zPolicyHeaderSerializer.Meta)r   r   r   r   r   policyTypeIddescriptionListN)r   r   r   PolicyHeaderr   r   r   r   r   r   r   d	  r   r   c                 C   r   )NpolicyHeaderIdr   r   )r   PolicyHeaderLanguager   r)   r*   r   r   r   )r   r,   r   policyHeaderLanguageListr   r   r   r   o	  r   zPolicyHeaderSerializer.get_namec                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r)   r*   r   r   PolicyHeaderLanguageSerializerr;   )r   r,   r   r  r   r   r   r   v	  r   z'PolicyHeaderSerializer.get_languageListc                 C   6   t | }t| }tjj|jd}t|||dddjS )Nr  rO  Tr   r   )r   r   PolicyDescriptionr   r)   r   PolicyDescriptionSerializerr;   )r   r,   r   r   r  r   r   r   get_descriptionList~	     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.Meta)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 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   r  	  r   z+PolicyDescriptionSerializer.get_descriptionc                 C   r   )Nr   r  r   Tr   )
r   r   r  r   r)   r*   r   r   #PolicyDescriptionLanguageSerializerr;   )r   r,   r   r  r   r   r   r   	  r   z,PolicyDescriptionSerializer.get_languageListN
r   r   r   r   r   r  r   r   r  r   r   r   r   r   r  	  r   r  c                   @   r   )r  c                   @   r   )z(PolicyDescriptionLanguageSerializer.Meta)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                       sf   e Zd Ze 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   subTotalr&  r  r  r  r   r   rY   r^   r[   r`   isPaidN)r   r   r   Recharger   r   r   r   r   r   r   	  r   r   c                 C   r  r7  )r\   r  r   r   r   	get_taxes	  r  zRechargeSerializer.get_taxesc                 C   r  r7  r  r  r   r   r   r  	  r  z$RechargeSerializer.get_paymentMethodc                 C   s2   d}t jj|jdj|jd}| dkrd}|S )NF)
rechargeId)rY   r   T)Paymentr   r)   r   rY   r   )r   r,   ZisCheckZpaymentListr   r   r   
get_isPaid	  s
   zRechargeSerializer.get_isPaidc                    s  t  |}d| _d| _d| _|jdkr|j|j | _n|j| _|jd urFd}|jdkr0|j}n| j}| j||jj d  | _| j| j | _|j	d urx|j	j
dkri| j|j	j }|d|j	jd   }|| j | _n| j|j	j | _| j| j | _| j|d< | j|d< | j|d< |S )Nr   r  Tr   r0  transactionFeesr  )r7  r8  r0  r  r  r&  r  rY   r   r^   r   r  )r   r,   r:  ZcurrentValuer  r;  r   r   r8  	  s2   






z$RechargeSerializer.to_representation)r   r   r   r   r   r[   r`   r  r0  r  r  r   r  r  r  r8  r=  r   r   r;  r   r  	  s    r  c                   @   r   )PaymentSerializerc                   @   r   )zPaymentSerializer.Meta)r   paidchanger  r  descriptionDetailr   r   rT   r"  rY   r  ra  requestReturnIdsubscriptionIditemSubscriptionIdr  rV   N)r   r   r   r  r   r   r   r   r   r   r   	
  r   r   c                 C   r  r7  r
  r  r   r   r   r  
  r  z%PaymentSerializer.get_transactionTypeNr  r   r   r   r   r  
  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   r|  r  Zquantity__sum)rS   r   r)   AccessoryTransactionr   r  r  )	r   r,   inTransoutTransZamountInDataZamountOutDataZamountInZ	amountOutr  r   r   r   
get_amount1
  s   ((zAccessorySerializer.get_amountN)r   r   r   r   r   r  r   r  r   r   r   r   r  $
  r   r  c                   @   r   )AccessoryTransactionSerializerc                   @   r   )z#AccessoryTransactionSerializer.Meta)	r   r  r   r   r   rT   r  r  rV   N)r   r   r   r  r   r   r   r   r   r   r   H
  r   r   c                 C   s   |j |j S r7  )r  r   r  r   r   r   	get_totalU
  s   z(AccessoryTransactionSerializer.get_totalc                 C   r  r7  r
  r  r   r   r   r  X
  r  z2AccessoryTransactionSerializer.get_transactionTypeN)
r   r   r   r   r   r  rV   r   r  r  r   r   r   r   r  E
  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   r<   statecitylatitude	longitudedeviceIPopenFromr   r   N)r   r   r   SystemTrafficr   r   r   r   r   r   r   j
  r   r   Nr   r   r   r   r   r  i
  r   r  c                   @   r   )UploadGroupSerializerc                   @   r   )zUploadGroupSerializer.Meta)r   r   r   r   r2  N)r   r   r   UploadGroupr   r   r   r   r   r   r   {
  r   r   c                 C   s   t jj|jd S )N)uploadGroupId)r<  r   r)   r   r+   r  r   r   r   rA  
  s   z#UploadGroupSerializer.get_itemCountN)r   r   r   r   r   r2  r   rA  r   r   r   r   r  y
      	r  c                   @   r   )ItemKeyNameSerializerc                   @   r  )zItemKeyNameSerializer.Metar   r   Nr   r   r   r<  r   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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   r   r  rL  r  r  isElectronicr0  r   r   rO   ra  r   r  r	  isFavoriteWithClientrQ   brandr   
newArrivalr   rV  featureBulletListr  r  Nr  r   r   r   r   r   
  r   r   c                 C   r  r7  r.   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_amountr  r   )r   r   rv   r   r)   r   r  r  )r   r,   r   r+   r   r   r   r  
  s   zItemSerializer.get_amountc                 C   s  t | }t| }t| }t| }d}d}g }|d urt|dkr7tjj|jd	d}t
||||dddjS d}	| jd	rS| jd	 jd
d }| jd	 jdd }|d urz|d urzt|dkryt|dkryd}	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
|
|||dddjS g S g S )Nr   r   r%   r   r  Tr  Fr   	min_price	max_price)Z
price__gte)Z
price__lte)r   r   r   r    rw  rv   r   r)   r   rR  rx   r;   r   r	   r
   r   floatr   rS  )r   r,   r   r   r   r   r   r   rX  ZisSelectedRangeZtempListr   r   r   get_skuList
  sN    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%   r  Z	rate__sumr   )r  r   r)   r*   r   r  r  r+   )r   r,   Z	totalRater+   r   r   r   get_rate
  s
   zItemSerializer.get_ratec                 C   r  r7  )rR   r  r   r   r   get_department   r  zItemSerializer.get_departmentc                 C   r5   r6   )	r   r_  r   r   r*   ra  r   rh  r;   )r   r,   r   r  r   r   r   	get_brand  r>   zItemSerializer.get_brandc                 C   r  r7  r   r  r   r   r   r    r  zItemSerializer.get_supplierc                 C   s:   t | }t| }tjjt|jjd}t|||ddj	S )Nr   rO  r7   )
r   r   r  r   r   r*   r  r   r  r;   )r   r,   r   r   r  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	|||dddj
S g S g S )Nr   r%   rO  Tr  )r   r   r   rw  FeatureBulletr   r)   r*   r   FeatureBulletSerializerr;   )r   r,   r   r   r   r  r   r   r   get_featureBulletList  s   z$ItemSerializer.get_featureBulletListc                 C   r   Nr%   r   r   r   ItemLanguager   r)   r*   r   r   r   r   r,   r   itemLanguageListr   r   r   r     r   zItemSerializer.get_namec                 C   r   r"  )r   r$  r   r)   r*   r   r   r  r%  r   r   r   r  "  r   zItemSerializer.get_descriptionc                 C   r   )Nr   r%   r   Tr   )
r   r   r$  r   r)   r*   r   r   ItemLanguageSerializerr;   )r   r,   r   r&  r   r   r   r   (  r   zItemSerializer.get_languageListN)r   r   r   r   r   r   r  rQ   r  r   r  r   rV  r  r  r  r  r   r  r  r  r  r  r  r  r  r!  r   r  r   r   r   r   r   r  
  s4    2r  c                   @   r   )r'  c                   @   r   )zItemLanguageSerializer.Meta)r   r   r  r&   r   N)r   r   r   r$  r   r   r   r   r   r   r   1  r   r   Nr   r   r   r   r   r'  0  r   r'  c                   @   r   )r   c                   @   r   )zFeatureBulletSerializer.Meta)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featureBulletIdr   r   )r   FeatureBulletLanguager   r)   r*   r   r   r  )r   r,   r   featureBullerLanguageListr   r   r   r  K  r   z'FeatureBulletSerializer.get_descriptionc                 C   r   )Nr   r(  r   Tr   )
r   r   r*  r   r)   r*   r   r   FeatureBulletLanguageSerializerr;   )r   r,   r   r+  r   r   r   r   R  r   z(FeatureBulletSerializer.get_languageListNr  r   r   r   r   r   =  s    r   c                   @   r   )r,  c                   @   r   )z$FeatureBulletLanguageSerializer.Meta)r   r  r)  r   N)r   r   r   r*  r   r   r   r   r   r   r   [  r   r   Nr   r   r   r   r   r,  Z  r   r,  c                   @   r   )EligibleSerializerc                   @   r   )zEligibleSerializer.Meta)r   r   r   r&   r  N)r   r   r   Eligibler   r   r   r   r   r   r   g  r   r   Nr   r   r   r   r   r-  f  r   r-  c                   @   r   )rT  c                   @   r   )zSKUBasicSerializer.Meta)r   r   r&   itemKeyNamer   Nr   r   r   rv   r   r   r   r   r   r   r   w  r   r   c                 C   rn  r7  )r&   r   r  r   r   r   get_itemKeyName  rp  z"SKUBasicSerializer.get_itemKeyNameN)r   r   r   r   r   r/  r   r1  r   r   r   r   rT  u  r
  rT  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 )rx   c                   @   r   )zSKUSerializer.Meta)r   r   r   r   ru  r  r   r   r   r&   skuOptionListskuDescriptionListskuPublishContentListrW  Nr0  r   r   r   r   r     r   r   c                 C   r  )Nrw   rO  Tr  )r   r   	SKUOptionr   r)   r   SKUOptionSerializerr;   )r   r,   r   r   r3  r   r   r   get_skuOptionList  r  zSKUSerializer.get_skuOptionListc                 C   V   t | }t| }|d ur't|tdkr)tjj|jd}t|||dddjS d S d S Nr   r6  rO  Tr  )	r   r   r   SKUDescriptionr   r)   r   SKUDescriptionSerializerr;   )r   r,   r   r   r4  r   r   r   get_skuDescriptionList     z$SKUSerializer.get_skuDescriptionListc                 C   r:  r;  )	r   r   r   SKUPublishContentr   r)   r   SKUPublishContentSerializerr;   )r   r,   r   r   r5  r   r   r   get_skuPublishContentList  r?  z'SKUSerializer.get_skuPublishContentListc                 C   sh   t | }|d ur0t|dkr2t| }t| }t| }tjjt|j	j
d}t||||ddjS d S d S )Nr   r   )r   r   r   r7   )r    rw  r   r   r   r<  r   r   r*   r&   r   ItemDisplaySerializerr;   )r   r,   r   r   r   r   rW  r   r   r   get_item  s   zSKUSerializer.get_itemN)r   r   r   r   r   r3  r4  r5  rW  r   r9  r>  rB  rD  r   r   r   r   rx     s    rx   c                   @   r   )rA  c                   @   r   )z SKUPublishContentSerializer.Meta)r   containerId	publishIdr   r   rw   r   
socialLinkN)r   r   r   r@  r   r   r   r   r   r   r     r   r   c                 C   sF   |j d urtjj|j jd}|d ur!t| }t|d|idjS d S d S )Nr   r   r7   )r   r   r   r   r   r   r   r;   )r   r,   r3  r   r   r   r   get_socialLink  s   
z*SKUPublishContentSerializer.get_socialLinkN)r   r   r   r   r   rG  r   rH  r   r   r   r   rA    r  rA  c                   @   r2  )r8  c                   @   r   )zSKUOptionSerializer.Meta)
r   r   isColortitlevalue	colorNamer   r   r   rw   N)r   r   r   r7  r   r   r   r   r   r   r     r   r   c                 C   r   NskuOptionIdr   r   )r   SKUOptionLanguager   r)   r*   r   r   rJ  r   r,   r   skuOptionLanguageListr   r   r   	get_title  r   zSKUOptionSerializer.get_titlec                 C   r   rM  )r   rP  r   r)   r*   r   r   rK  rQ  r   r   r   	get_value  r   zSKUOptionSerializer.get_valuec                 C   r   rM  )r   rP  r   r)   r*   r   r   rL  rQ  r   r   r   get_colorName  r   z!SKUOptionSerializer.get_colorNamec                 C   r   )Nr   rN  r   Tr   )
r   r   rP  r   r)   r*   r   r   SKUOptionLanguageSerializerr;   )r   r,   r   rR  r   r   r   r     r   z$SKUOptionSerializer.get_languageListN)r   r   r   r   r   rJ  rK  rL  r   r   rS  rT  rU  r   r   r   r   r   r8    s    r8  c                   @   r   )rV  c                   @   r   )z SKUOptionLanguageSerializer.Meta)r   rJ  rK  rL  rO  r   N)r   r   r   rP  r   r   r   r   r   r   r     r   r   Nr   r   r   r   r   rV    r   rV  c                   @   r\  )
r=  c                   @   r   )zSKUDescriptionSerializer.Meta)	r   r   rI  rJ  rK  r   r   r   rw   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   rJ  r   r,   r   skuDescriptionLanguageListr   r   r   rS  $  r   z"SKUDescriptionSerializer.get_titlec                 C   r   rW  )r   rZ  r   r)   r*   r   r   rK  r[  r   r   r   rT  +  r   z"SKUDescriptionSerializer.get_valuec                 C   r   )Nr   rX  r   Tr   )
r   r   rZ  r   r)   r*   r   r    SKUDescriptionLanguageSerializerr;   )r   r,   r   r\  r   r   r   r   2  r   z)SKUDescriptionSerializer.get_languageListN)r   r   r   r   r   rJ  rK  r   r   rS  rT  r   r   r   r   r   r=    s    r=  c                   @   r   )r]  c                   @   r   )z%SKUDescriptionLanguageSerializer.Meta)r   rJ  rK  rL  rY  r   N)r   r   r   rZ  r   r   r   r   r   r   r   ;  r   r   Nr   r   r   r   r   r]  :  r   r]  c                   @   r\  )
rC  c                   @   r   )zItemDisplaySerializer.Meta)r   r   rL  r  r  r  r0  r   r   rO   ra  r   r  r  r   Nr  r   r   r   r   r   J  r   r   c                 C   r  r7  r  r  r   r   r   r  ^  r  z.ItemDisplaySerializer.get_isFavoriteWithClientc                 C   r   r"  r#  r%  r   r   r   r   a  r   zItemDisplaySerializer.get_namec                 C   r  r7  r  r  r   r   r   r  g  r  z"ItemDisplaySerializer.get_supplierN)r   r   r   r   r   r   r   r  r   r  r   r  r   r   r   r   rC  F  s    rC  c                   @   r   )FavoriteSerializerc                   @   r   )zFavoriteSerializer.Meta)r   r   r   r&   r   rW  N)r   r   r   r(   r   r   r   r   r   r   r   n  r   r   c                 C   sN   t | }t| }t| }t| }tjjt|jj	d}t
|||||ddjS )Nr   )r   r   r   r   r7   )r   r   r   r   r<  r   r   r*   r&   r   r  r;   )r   r,   r   r   r   r   rW  r   r   r   rD  x  s   zFavoriteSerializer.get_itemN)r   r   r   r   r   rW  r   rD  r   r   r   r   r^  l  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 r7  )r   r~   r  r   r   r   r!    s   

z!ShoppingCartSerializer.get_clientNr  r   r   r   r   r_    r[  r_  c                   @   r   )ShoppingCartItemSerializerc                   @   r   )zShoppingCartItemSerializer.Meta)r   r  r   r   shoppingCartIdrw   ry   N)r   r   r   ShoppingCartItemr   r   r   r   r   r   r     r   r   c                 C   r  r7  r  r  r   r   r   r    r  z"ShoppingCartItemSerializer.get_skuNr  r   r   r   r   ra    r   ra  )rest_frameworkr   snow_flake.modelsdjango.db.modelsr  r   r   r   r   r   r    r"   r$   r.   r0   r2   r4   r=   rE   rL   rR   rW   r\   ra   rf   rk   rp   ru   rz   r~   r   
Serializerr   r   ModelSerializerr   r   r   r   r   r   r   r   rZ   r   r   r   r   rn   rs   r  r  r	  r_   r  r  r  r:   r  rJ   r!  rC   r$  r+  rH  rP   r]  rg  rh  rd   rl  rm  rs  ri   r{  rU   r  r  r  r  r  r  r  r|   r  r  r  r  r	  r  r?  r   rH  rJ  rL  rQ  r]  rd  rc  re  rg  ru  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-  rT  rx   rA  r8  rV  r=  r]  rC  r^  r_  ra  r   r   r   r   <module>   s   									o
4
!gK8L}2
E6( %$O! !91(&