o
    xhc                    @   s  d dl Z d dlZd dlZd dlmZ d dlmZ d dlT d dlT d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlZd dlmZ d dlmZ d dlmZ G dd de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d dej#Z&G dd dej#Z'G dd dej(Z)G d d! d!eZ*G d"d# d#ej+Z,G d$d% d%ej-Z.G d&d' d'ej+Z/G d(d) d)ej-Z0G d*d+ d+ej+Z1G d,d- d-ej-Z2G d.d/ d/ej+Z3G d0d1 d1ej-Z4G d2d3 d3ej+Z5G d4d5 d5ej-Z6G d6d7 d7ej+Z7G d8d9 d9ej-Z8G d:d; d;ej+Z9G 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+ZAG dLdM dMej-ZBG dNdO dOej+ZCG dPdQ dQej-ZDG dRdS dSej+ZEG dTdU dUej-ZFG dVdW dWej+ZGG dXdY dYej-ZHG dZd[ d[ej+ZIG d\d] d]ej-ZJG d^d_ d_ej+ZKG d`da daej-ZLG dbdc dcej+ZMG ddde deej-ZNG dfdg dgej+ZOG dhdi diej-ZPG djdk dkej+ZQG dldm dmej-ZRG dndo doej+ZSG dpdq dqej-ZTG drds dsej+ZUG dtdu duej-ZVG dvdw dwej+ZWG dxdy dyej-ZXG dzd{ d{ej+ZYG d|d} d}ej-ZZG d~d de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 ddӄ dej+ZG ddՄ dej-ZG ddׄ dej+ZG ddل dej-ZG ddۄ dej+ZG dd݄ dej-ZG dd߄ dej+ZG dd dej-ZG dd dej+ZG dd dejZG dd dej+ZG dd dej-ZG dd dej+ZG dd dej-ZG dd dej+ZG dd dej-ZG dd dej+ZG dd dej-ZG 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+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-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 d0d1 d1ej+ZG d2d3 d3ej-ZG d4d5 d5ejZG d6d7 d7ej+ZG d8d9 d9ej-ZG d:d; d;ej+ZG d<d= d=ej-ZG d>d? d?ej+ZG d@dA dAej-ZG dBdC dCej+ZG dDdE dEej-ZG dFdG dGej+ZG dHdI dIej-ZG dJdK dKej+ZG dLdM dMej-ZG dNdO dOej+ZG dPdQ dQej-ZG dRdS dSej+ZG dTdU dUej-ZG dVdW dWej+ZG dXdY dYej-ZG dZd[ d[ejZG d\d] d]ej+ZG d^d_ d_ej-ZG d`da daej+ZG dbdc dcej-ZG ddde deej+ZG dfdg dgej-ZG dhdi diej+ZG djdk dkej-ZG dldm dmej+ZG dndo doej-ZG dpdq dqej+ZG drds dsej-ZG dtdu duej+ZG dvdw dwej-ZG dxdy dyej+ZG dzd{ d{ej-ZG d|d} d}ejZG d~d dej+ZG dd dej-ZG dd dej+ZG dd dej-ZG dd dej+ZG dd dej-ZG dd dej+ZG dd dej-ZG dd dej+ZG dd dej-ZG dd dejZG dd dej+ZG dd dej-ZG dd dejZG dd dej+ZG dd dej-ZG dd dej(ZG dd dej+ZG dd dej-ZG dd dej+ZG dd dej-ZG dd dej+ZG dd dej-ZG dd dej+ZG dd dej-ZdS (      N)Image)generics)*)DjangoFilterBackend)
pagination)filters)rest_framework)Response)Q)InMemoryUploadedFile)NotFound)View)JsonResponse)
MEDIA_ROOT)authentication)
exceptionsc                   @      e Zd Zdd ZdS )TokenAuthenticationc                 C   s6   |j d}d}|d ur|dkrd}|rd S td)NtokenFTzIn Valid Tokenheadersgetr   ZAuthenticationFailed)selfrequestr   ZisUserAuthenticated r   d/Users/waleedhassanin/Documents/GitHub/snow_flake_back_end_deploy/snow_flake_api/snow_flake/views.pyauthenticate      
z TokenAuthentication.authenticateN__name__
__module____qualname__r   r   r   r   r   r          r   c                   @   r   )APIKeyAuthenticationc                 C   s6   |j d}d}|d ur|dkrd}|rd S td)NZAPIKeyFtestTzIn Valid API Keyr   )r   r   ZapiKeyZisRequestAuthenticatedr   r   r   r   )   r   z!APIKeyAuthentication.authenticateNr   r   r   r   r   r#   (   r"   r#   c                   @   s   e Zd ZdZdZdZdS )StandardSetPagination   	page_size  Nr   r    r!   r'   page_size_query_parammax_page_sizer   r   r   r   r%   6   
    r%   c                   @   s   e Zd ZdZdZdZdS )StandardCitySetPaginationr(   r'   Nr)   r   r   r   r   r-   >   r,   r-   c                   @   s(   e Zd ZdZdZdZdd Zdd ZdS )	StandardItemSetPaginationr&   r'   r(   c                 C   sZ  |d ur-t jjddj|djtdtdd}t jjddj|djtdtdd}n$t j jddjtdtdd}t j jddjtdtdd}|d ur}|d s]d	|d< |d
 sed|d
< |d d	kr}|d
 d	kr}|d |d
 kr}d|d< |d ur|d sd	|d< |d sd|d< |d d	kr|d d	kr|d |d krd|d< ||fS )NT
isApproved)Z"item_itemlanguage__name__icontainsitem_sku__price	min_price	max_priceitem_sku__discountmin_discountmax_discountr3   r   r4      r7   r8   )Itemobjectsfilter	aggregateMinMaxall)r   search	priceValsdiscountValsr   r   r   getStandardFilterM   s`   
	z+StandardItemSetPagination.getStandardFilterc              
   C   s   | j jdd }d }d }| |\}}|d ur3t| jjj|  | 	 |d |d |d |d |dS t| jjj|  | 	 |dS )NrA   r3   r4   r7   r8   countnextpreviousminPricemaxPriceminDiscountmaxDiscountresultsrF   rG   rH   rM   )
r   query_paramsr   rD   r	   page	paginatorrF   get_next_linkget_previous_link)r   datarA   rB   rC   r   r   r   get_paginated_response   s.   z0StandardItemSetPagination.get_paginated_responseN)r   r    r!   r'   r*   r+   rD   rU   r   r   r   r   r.   F   s    8r.   c                   @   s    e Zd ZdZdZdZdd ZdS )StandardSKUSetPaginationr&   r'   r(   c              
   C   sH  t j jtdtdd}t j jtdtdd}|d urH|d s(d|d< |d s0d|d< |d dkrH|d dkrH|d |d krHd|d< |d urt|d	 sTd|d	< |d
 s\d|d
< |d	 dkrt|d
 dkrt|d	 |d
 krtd|d	< |d urt| jjj	| 
 |  |d |d |d	 |d
 |dS t| jjj	| 
 |  |dS )Npricer2   discountr6   r3   r   r4   r9   r7   r8   rE   rN   )SKUr;   r<   r=   r>   r?   r	   rP   rQ   rF   rR   rS   )r   rT   rB   rC   r   r   r   rU      sR   

z/StandardSKUSetPagination.get_paginated_responseN)r   r    r!   r'   r*   r+   rU   r   r   r   r   rV      s    rV   c                   @   s0   e Zd ZeZdd Zdd Zdd Zdd Zd	S )
DashboardDataViewc                 C   sP   d}g }|D ]}t |j}||d  }qg }|D ]}t|j}||d  }q|S )Nr   sumTaxes)RechargeSerializerrT   PurchaseOrderSerializer)r   r[   ZrechargeListselected
serializerZpurchaseOrderListr   r   r   calculateTaxes   s   	
	
z DashboardDataView.calculateTaxesc                 C   s4  t j }tjtd}|d d u rd|d< tjtd}|d d u r)d|d< tjtd}|d d u r;d|d< tjjdd	}tjjd
d	}d}d}d}	d}
d}d}| dkrtjj|d j	d }tjj|d j	dtd}|d d u rd|d< tjj|d j	dtd}	|	d d u rd|	d< | dkrtjj|d j	d }
tjj|d j	dtd}|d d u rd|d< tjj|d j	dtd}|d d u rd|d< |d }|	d }|d }|d }|| }|| }| 
 }t||d |d |d ||d |	d |
|d |d |||}|gS )Ntotal
total__sumr   paid	paid__sumchangechange__sumInTransZkeyName__icontainsOutTranstransactionTypeId)r:   r;   rF   Paymentr=   SumTransactionTyper<   __len__idr`   DashboardData)r   
countItemssumPaymentTotalsumPaymentPaidsumPaymentChangeinTransoutTranscountTransactionInsumTransactionInTotalsumTransactionInPaidcountTransactionOutsumTransactionOutTotalsumTransactionOutPaidZ
sumTotalInZ	sumPaidInZsumTotalOutZ
sumPaidOutZbalanceTotalZbalancePaidr[   dashboardDatar   r   r   getDashboardData   s   




z"DashboardDataView.getDashboardDatac                 C   s  t jj|d }tjt|dt|dB td}|d d u r&d|d< tjt|dt|dB td}|d d u rCd|d< tjt|dt|dB td	}|d
 d u r`d|d
< tjjdd}tjjdd}d}d}	d}
d}d}d}|	 dkrtjj|d j
dt|dt|dB  }tjj|d j
dt|dt|dB td}	|	d d u rd|	d< tjj|d j
dt|dt|dB td}
|
d d u rd|
d< |	 dkrGtjj|d j
dt|dt|dB  }tjj|d j
dt|dt|dB td}|d d u r"d|d< tjj|d j
dt|dt|dB td}|d d u rGd|d< t||d |d |d
 ||d |d ||	d |
d ddd}|gS )N)
supplierIdZsalesOrderId__supplierIdZsubscriptionId__supplierIdra   rb   r   rc   rd   re   rf   rg   rh   ri   rj   )r:   r;   r<   rF   rl   r
   r=   rm   rn   ro   rp   rq   )r   r   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   getSupplierDashboardDataY  s   


	
	
		
	
	z*DashboardDataView.getSupplierDashboardDatac                 C   s   | j jd}| j jd}|d ur|d urtddi|d ur0t|dkr*|  S tddi|d urEt|dkr?| |S tdditddi)NisDashboardr   ErrorInvalid Parametersr9   r   )r   rO   r   r   intr   r   )r   r   r   r   r   r   get_queryset  s   
zDashboardDataView.get_querysetN)	r   r    r!   ZDashboardDataSerializerserializer_classr`   r   r   r   r   r   r   r   rZ      s    ZurZ   c                   @   r   )CheckoutPageViewc                 O   s  t |j}d }d }d }g }d|v r|d }d|v r|d }d|v r&|d }d|v r.|d }d}	d}
d}i }g }d }| dkrg }|D ]	}||d  qDtjj|dd}| dkr||d j	j
j t||d	d
ddj}|D ]}|D ]}|d |d kr|d |d< qyqu|D ]}|d d }|d }|	||  }	q||d< |d urP|d urP|d urPd}
g }g }| dkrtjj||dd}|D ]p}d}|d ur|D ]}|d }||j|  }qtjjdd}|D ]2}d}|jjt|jkr||j }|| }tjj|jjd}t|d|idj}||d< || q|D ]}|d |kr/|d }
q"| dkr<||d< q| dkrPt|d|iddj|d< |	|
 }i }|	|d< |
|d< ||d< ||d< d|d< t|ddS )N
languageId	countryIdshippingMethodIdquantityDataListr   skuId)Zid__inrp   r9   )r   Z
isShowItemT)contextmanyquantityZskuNewPricerW   selectedSKUList)r   ZsupplierId__in	isEnabledrp   )r   ZcostshippingMethodListshippingCostListsubTotaldeliveryra   checkoutCostZ	isSuccessF)safe)jsonloadsbodyro   appendrY   r;   r<   order_byitemIdr   rp   SKUSerializerrT   ShippingCostadditionalPriceShippingMethodr   r   rW   r   ShippingMethodSerializerShippingCostSerializerr   )r   r   argskwargsZjsonDatar   r   r   r   r   r   ra   ZdictionaryCheckoutZsupplierListZ
skuSerListZ	skuIdListZquantityDatar   skuZnewPricer   ZshippingMethodSerListr   ZshippingCostZadditionalCostr   ZshippingMethodZshippingDeliveryZselectedShippingMethodZshippingMethodSerr   r   r   r   post  s   	




zCheckoutPageView.postN)r   r    r!   r   r   r   r   r   r     r"   r   c                   @      e Zd Zej ZeZdS )SettingsListN	r   r    r!   Settingsr;   r@   querysetZSettingsSerializerr   r   r   r   r   r   _  s    
r   c                   @   r   )SettingsDetailNr   r   r   r   r   r   e      
r   c                   @      e Zd ZeZdd ZdS )LanguageListc                 C   .   | j jd}|dkrtj S tjjddS Nr   1Tr   )r   rO   r   Languager;   r@   r<   r   r   r   r   r   r   m     
zLanguageList.get_querysetN)r   r    r!   LanguageSerializerr   r   r   r   r   r   r   j      r   c                   @   r   )LanguageDetailN)	r   r    r!   r   r;   r@   r   r   r   r   r   r   r   r   u  r   r   c                   @   $   e Zd Zej ZeZdddZ	dS )AppContentListNc              	   C   s  | j jd}|d ur| j jd}t|d}t|}t	|}t }|j
|| d | j jd}	t|d|	| d d|  d}
| j jd	}| j jd
}| j jd}| j jd}| j jd}| j jd}|j
|||||
||d d S |
  d S )NimageBase64imageExtensionUTF-8format	imageNameimageimage/file
field_namenamesizecharsetcontent_typekeyNamedescription
navigateToisSliderFlagcreatedDateupdatedDater   r   r   r   r   r   r   r   rT   r   base64	b64decodeencodeioBytesIOr   opensaveupperr   tell)r   r_   r   r   r   rT   bufimgimg_ior   newImager   r   r   r   newCreatedDatenewUpdatedDater   r   r   perform_create~  sB   


	

zAppContentList.perform_createN)
r   r    r!   
AppContentr;   r@   r   AppContentSerializerr   r   r   r   r   r   r   z      
r   c                   @   r   )AppContentDetailNc              	   C   s  | j jd}|d ur| j jd}| j jd}t|d}t|}t	|}t }	|j
|	| d | j jd}
t|	d|
|	 d d|  d	}| j jd
}|d ur|dkrtjtd t| d | d | rttd t| d | d |  | j jd}| j jd}| j jd}| j jd}| j jd}| j jd}|j
|||||||d d S |
  d S )Nr   oldImageNamer   r   r   r   r   r   r   rp   holderz/appcontents/appcontent_/.r   r   r   r   r   r   r   r   rT   r   r   r   r   r   r   r   r   r   r   r   r   ospathexistsr   strremove)r   r_   r   r   r   r   rT   r   r   r   r   r   rp   r   r   r   r   r   r   r   r   r   perform_update  s   


		


zAppContentDetail.perform_updater   )
r   r    r!   r   r;   r@   r   r   r   r   r   r   r   r   r     r   r   c                   @   (   e Zd Zej ZeZe	gZ
ddgZdS )AppContentLanguageListappContentIdr   N)r   r    r!   AppContentLanguager;   r@   r   AppContentLanguageSerializerr   r   filter_backendsfilterset_fieldsr   r   r   r   r     
    
r   c                   @   r   )AppContentLanguageDetailN)	r   r    r!   r   r;   r@   r   r   r   r   r   r   r   r     r   r   c                   @   r   )SocialLinkListN	r   r    r!   
SocialLinkr;   r@   r   ZSocialLinkSerializerr   r   r   r   r   r    r   r  c                   @   r   )SocialLinkDetailNr  r   r   r   r   r    r   r  c                   @   $   e Zd ZeZegZdgZdd ZdS )SocialLinkTokenListsocialLinkIdc                 C   *   | j jd}|dkrtj dS d S Nr   r   -idr   rO   r   SocialLinkTokenr;   r@   r   r   r   r   r   r        z SocialLinkTokenList.get_querysetN)	r   r    r!   SocialLinkTokenSerializerr   r   r   r   r   r   r   r   r   r    
    r  c                   @   r   )SocialLinkTokenDetailc                 C   r  r	  r  r   r   r   r   r     r  z"SocialLinkTokenDetail.get_querysetN)r   r    r!   r  r   r   r   r   r   r   r    r   r  c                   @   r   )RegisterTypeListN	r   r    r!   RegisterTyper;   r@   r   ZRegisterTypeSerializerr   r   r   r   r   r    r   r  c                   @   r   )RegisterTypeDetailNr  r   r   r   r   r    r   r  c                   @   r   )RegisterTypeLanguageListregisterTypeIdr   N)r   r    r!   RegisterTypeLanguager;   r@   r   RegisterTypeLanguageSerializerr   r   r   r   r   r   r   r   r    r   r  c                   @   r   )RegisterTypeLanguageDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  "  r   r  c                   @   r   )OrderFromListN	r   r    r!   	OrderFromr;   r@   r   ZOrderFromSerializerr   r   r   r   r   r  X  r   r  c                   @   r   )OrderFromDetailNr  r   r   r   r   r  ]  r   r  c                   @   r   )OrderFromLanguageListorderFromIdr   N)r   r    r!   OrderFromLanguager;   r@   r   OrderFromLanguageSerializerr   r   r   r   r   r   r   r   r  b  r   r  c                   @   r   )OrderFromLanguageDetailN)	r   r    r!   r   r;   r@   r   r!  r   r   r   r   r   r"  i  r   r"  c                   @   r   )ReturnStatusListN	r   r    r!   ReturnStatusr;   r@   r   ZReturnStatusSerializerr   r   r   r   r   r#    r   r#  c                   @   r   )ReturnStatusDetailNr$  r   r   r   r   r&    r   r&  c                   @   r   )ReturnStatusLanguageListreturnStatusIdr   N)r   r    r!   ReturnStatusLanguager;   r@   r   ReturnStatusLanguageSerializerr   r   r   r   r   r   r   r   r'    r   r'  c                   @   r   )ReturnStatusLanguageDetailN)	r   r    r!   r)  r;   r@   r   r*  r   r   r   r   r   r+    r   r+  c                   @   r   )TrackStatusListN	r   r    r!   TrackStatusr;   r@   r   ZTrackStatusSerializerr   r   r   r   r   r,    r   r,  c                   @   r   )TrackStatusDetailNr-  r   r   r   r   r/    r   r/  c                   @   r   )TrackStatusLanguageListtrackStatusIdr   N)r   r    r!   TrackStatusLanguager;   r@   r   TrackStatusLanguageSerializerr   r   r   r   r   r   r   r   r0    r   r0  c                   @   r   )TrackStatusLanguageDetailN)	r   r    r!   r2  r;   r@   r   r3  r   r   r   r   r   r4    r   r4  c                   @   s&   e Zd ZeZdd ZegZddgZdS )PaymentMethodListc                 C   r   r   )r   rO   r   PaymentMethodr;   r@   r<   r   r   r   r   r     r   zPaymentMethodList.get_querysetr   r   N)	r   r    r!   PaymentMethodSerializerr   r   r   r   r   r   r   r   r   r5    s
    r5  c                   @   r   )PaymentMethodDetailN)	r   r    r!   r6  r;   r@   r   r7  r   r   r   r   r   r8    r   r8  c                   @   r   )PaymentMethodLanguageListpaymentMethodIdr   N)r   r    r!   PaymentMethodLanguager;   r@   r   PaymentMethodLanguageSerializerr   r   r   r   r   r   r   r   r9    r   r9  c                   @   r   )PaymentMethodLanguageDetailN)	r   r    r!   r;  r;   r@   r   r<  r   r   r   r   r   r=    r   r=  c                   @   r   )EligibleTypeListN	r   r    r!   EligibleTyper;   r@   r   ZEligibleTypeSerializerr   r   r   r   r   r>    r   r>  c                   @   r   )EligibleTypeDetailNr?  r   r   r   r   rA    r   rA  c                   @   r   )EligibleTypeLanguageListeligibleTypeIdr   N)r   r    r!   EligibleTypeLanguager;   r@   r   EligibleTypeLanguageSerializerr   r   r   r   r   r   r   r   rB    r   rB  c                   @   r   )EligibleTypeLanguageDetailN)	r   r    r!   rD  r;   r@   r   rE  r   r   r   r   r   rF    r   rF  c                   @   &   e Zd Zej ZeZe	gZ
dgZdS )CountryListisActiveN)r   r    r!   Countryr;   r@   r   CountrySerializerr   r   r   r   r   r   r   r   rH    
    

rH  c                   @   r   )CountryDetailN)	r   r    r!   rJ  r;   r@   r   rK  r   r   r   r   r   rM    r   rM  c                   @   r   )CountryLanguageListr   r   N)r   r    r!   CountryLanguager;   r@   r   CountryLanguageSerializerr   r   r   r   r   r   r   r   rN    r   rN  c                   @   r   )CountryLanguageDetailN)	r   r    r!   rO  r;   r@   r   rP  r   r   r   r   r   rQ    r   rQ  c                   @   s8   e Zd Zej dZeZ	e
jegZddgZdgZdS )	StateListZstate_statelanguage__namer   rI  r   N)r   r    r!   Stater;   r@   r   r   StateSerializerr   searchfilterSearchFilterr   r   r   search_fieldsr   r   r   r   rR    s    

rR  c                   @   r   )StateDetailN)	r   r    r!   rS  r;   r@   r   rT  r   r   r   r   r   rX    r   rX  c                   @   r   )StateLanguageListstateIdr   N)r   r    r!   StateLanguager;   r@   r   StateLanguageSerializerr   r   r   r   r   r   r   r   rY    r   rY  c                   @   r   )StateLanguageDetailN)	r   r    r!   r[  r;   r@   r   r\  r   r   r   r   r   r]    r   r]  c                   @   <   e Zd Zej dZeZ	e
ZejegZddgZdgZdS )CityListZcity_citylanguage__namerZ  rI  r   N)r   r    r!   Cityr;   r@   r   r   CitySerializerr   r-   pagination_classrU  rV  r   r   r   rW  r   r   r   r   r_  $      

r_  c                   @   r   )
CityDetailN)	r   r    r!   r`  r;   r@   r   ra  r   r   r   r   r   rd  -  r   rd  c                   @   r   )CityLanguageListcityIdr   N)r   r    r!   CityLanguager;   r@   r   CityLanguageSerializerr   r   r   r   r   r   r   r   re  2  r   re  c                   @   r   )CityLanguageDetailN)	r   r    r!   rg  r;   r@   r   rh  r   r   r   r   r   ri  9  r   ri  c                   @   r  )ShippingMethodListr   c                 C   r   r   )r   rO   r   r   r;   r@   r<   r   r   r   r   r   C  r   zShippingMethodList.get_querysetN)	r   r    r!   r   r   r   r   r   r   r   r   r   r   rj  >  r  rj  c                   @   r   )ShippingMethodDetailN)	r   r    r!   r   r;   r@   r   r   r   r   r   r   r   rk  K  r   rk  c                   @   r   )ShippingMethodLanguageListr   r   N)r   r    r!   ShippingMethodLanguager;   r@   r    ShippingMethodLanguageSerializerr   r   r   r   r   r   r   r   rl  P  r   rl  c                   @   r   )ShippingMethodLanguageDetailN)	r   r    r!   rm  r;   r@   r   rn  r   r   r   r   r   ro  W  r   ro  c                   @   s*   e Zd ZeZeZegZg dZ	dd Z
dS )ShippingCostList)r   r   r   c                 C   r   r   )r   rO   r   r   r;   r@   r<   r   r   r   r   r   b  r   zShippingCostList.get_querysetN)r   r    r!   r   r   r%   rb  r   r   r   r   r   r   r   r   rp  \  s    rp  c                   @   r   )ShippingCostDetailN)	r   r    r!   r   r;   r@   r   r   r   r   r   r   r   rq  j  r   rq  c                   @   s0   e Zd ZeZejegZddgZ	dgZ
dd ZdS )DepartmentListr   departmentIdZ#department_departmentlanguage__namec                 C   s:   | j jd}|dkrtj dS tjjdddS )Nr   r   rp   T	isVisiblez-keyName)r   rO   r   
Departmentr;   r@   r   r<   r   r   r   r   r   z  s   zDepartmentList.get_querysetN)r   r    r!   DepartmentSerializerr   rU  rV  r   r   r   rW  r   r   r   r   r   rr  o  s    
rr  c                   @   r   )DepartmentetailN)	r   r    r!   rv  r;   r@   r   rw  r   r   r   r   r   rx    r   rx  c                   @   r   )DepartmentLanguageListrs  r   N)r   r    r!   DepartmentLanguager;   r@   r   DepartmentLanguageSerializerr   r   r   r   r   r   r   r   ry    r   ry  c                   @   r   )DepartmentLanguageDetailN)	r   r    r!   rz  r;   r@   r   r{  r   r   r   r   r   r|    r   r|  c                   @   s8   e Zd ZeZejegZdgZ	dgZ
dd ZdddZdS )		BrandListr   Zbrand_brandlanguage__namec                 C   r   )Nr   r   Trt  )r   rO   r   Brandr;   r@   r<   r   r   r   r   r     r   zBrandList.get_querysetNc              	   C   s   | j jd}|d ur`| j jd}t|d}t|}t	|}t }|j
|| d | j jd}	t|d|	| d d|  d}
| j jd	}| j jd
}|j
|
||d d S |
  d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r_   r   r   r   rT   r   r   r   r   r   r   r   r   r   r   r     s.   


	
zBrandList.perform_creater   )r   r    r!   BrandSerializerr   rU  rV  r   r   r   rW  r   r   r   r   r   r   r}    s    
r}  c                   @   r   )BrandDetailNc              	   C   s>  | j jd}|d ur| j jd}| j jd}t|d}t|}t	|}t }	|j
|	| d | j jd}
t|	d|
|	 d d|  d	}| j jd
}|d urtjtd t| d | d | rttd t| d | d |  | j jd}| j jd}|j
|||d d S |
  d S )Nr   r   r   r   r   r   r   r   r   rp   z/brands/brand_r   r   r   r   r  r   )r   r_   r   r   r   r   rT   r   r   r   r   r   rp   r   r   r   r   r   r   9  sp   


		

zBrandDetail.perform_updater   )
r   r    r!   r~  r;   r@   r   r  r   r   r   r   r   r   r  5  r   r  c                   @   r   )BrandLanguageListbrandIdr   N)r   r    r!   BrandLanguager;   r@   r   BrandLanguageSerializerr   r   r   r   r   r   r   r   r  l  r   r  c                   @   r   )BrandLanguageDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  s  r   r  c                   @   r   )SubscriptionStatusListN	r   r    r!   SubscriptionStatusr;   r@   r   ZSubscriptionStatusSerializerr   r   r   r   r   r  x  r   r  c                   @   r   )SubscriptionStatusDetailNr  r   r   r   r   r  }  r   r  c                   @   r   )SubscriptionStatusLanguageListsubscriptionStatusIdr   N)r   r    r!   SubscriptionStatusLanguager;   r@   r   $SubscriptionStatusLanguageSerializerr   r   r   r   r   r   r   r   r    r   r  c                   @   r   ) SubscriptionStatusLanguageDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r   )SubscriptionOptionListN	r   r    r!   SubscriptionOptionr;   r@   r   ZSubscriptionOptionSerializerr   r   r   r   r   r    r   r  c                   @   r   )SubscriptionOptionDetailNr  r   r   r   r   r    r   r  c                   @   r   )SubscriptionOptionLanguageListsubscriptionOptionIdr   N)r   r    r!   SubscriptionOptionLanguager;   r@   r   $SubscriptionOptionLanguageSerializerr   r   r   r   r   r   r   r   r    r   r  c                   @   r   ) SubscriptionOptionLanguageDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   s(   e Zd Zej ZeZe	gZ
g dZdS )SubscriptionTypeList)r  ZsubscriptionOptionId__keyNamer   N)r   r    r!   SubscriptionTyper;   r@   r   SubscriptionTypeSerializerr   r   r   r   r   r   r   r   r    r   r  c                   @   r   )SubscriptionTypeDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r   )SubscriptionTypeLanguageListsubscriptionTypeIdr   N)r   r    r!   SubscriptionTypeLanguager;   r@   r   "SubscriptionTypeLanguageSerializerr   r   r   r   r   r   r   r   r    r   r  c                   @   r   )SubscriptionTypeLanguageDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r   )TransactionTypeListN	r   r    r!   rn   r;   r@   r   ZTransactionTypeSerializerr   r   r   r   r   r    r   r  c                   @   r   )TransactionTypeDetailNr  r   r   r   r   r    r   r  c                   @   r   )TransactionTypeLanguageListrk   r   N)r   r    r!   TransactionTypeLanguager;   r@   r   !TransactionTypeLanguageSerializerr   r   r   r   r   r   r   r   r    r   r  c                   @   r   )TransactionTypeLanguageDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r   )NewArrivalListc                 C   s>   | j jd}|dkrtj dS tj dd d S )Nr   r   -createdDater9   )r   rO   r   
NewArrivalr;   r@   r   r   r   r   r   r     s   zNewArrivalList.get_querysetN)r   r    r!   NewArrivalSerializerr   r   r   r   r   r   r    r   r  c                   @   r   )NewArrivalDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r   )NewArrivalLanguageListnewArrivalIdr   N)r   r    r!   NewArrivalLanguager;   r@   r   NewArrivalLanguageSerializerr   r   r   r   r   r   r   r   r    r   r  c                   @   r   )NewArrivalLanguageDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   0   e Zd Zej dZeZ	e
ZegZdgZdS )
CouponListr
  codeN)r   r    r!   Couponr;   r@   r   r   CouponSerializerr   r%   rb  r   r   r   r   r   r   r   r        
r  c                   @   r   )CouponDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   s>   e Zd Zej dZeZ	e
ZejegZg dZg dZdS )
ClientListrp   )emailpasswordphone)	firstNamelastNamer  r  N)r   r    r!   Clientr;   r@   r   r   ClientSerializerr   r%   rb  rU  rV  r   r   r   rW  r   r   r   r   r    s    
r  c                   @   r   )ClientDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  
  r   r  c                   @   rG  )ClientCreditCardListclientIdN)r   r    r!   ClientCreditCardr;   r@   r   ClientCreditCardSerializerr   r   r   r   r   r   r   r   r    rL  r  c                   @   r   )ClientCreditCardDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   rG  )ClientAddressBookListr  N)r   r    r!   ClientAddressBookr;   r@   r   ClientAddressBookSerializerr   r   r   r   r   r   r   r   r    rL  r  c                   @   r   )ClientAddressBookDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  "  r   r  c                   @   s0   e Zd Zej dZeZ	e
ZegZdgZdS )
WalletListr  N)r   r    r!   Walletr;   r@   r   r   WalletSerializerr   r%   rb  r   r   r   r   r   r   r   r  '  s    
r  c                   @   r   )WalletDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  0  r   r  c                   @   2   e Zd Zej dZeZ	e
ZegZddgZdS )TransactionListr
  walletIdrk   N)r   r    r!   Transactionr;   r@   r   r   TransactionSerializerr   r%   rb  r   r   r   r   r   r   r   r  5      r  c                   @   r   )TransactionDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  =  r   r  c                   @   rG  )ShoppingCartListr  N)r   r    r!   ShoppingCartr;   r@   r   ShoppingCartSerializerr   r   r   r   r   r   r   r   r  B  rL  r  c                   @   r   )ShoppingCartDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  I  r   r  c                   @   s*   e Zd Zej ZeZe	Z
egZdgZdS )ShoppingCartDashboardListr  N)r   r    r!   r  r;   r@   r   r  r   r%   rb  r   r   r   r   r   r   r   r  N  s    

r  c                   @   sD   e Zd ZejdddZejdddZejdddZG dd dZ	d	S )
PurchaseOrderFilterr   gter   lookup_exprltZ*purchaseorder_shippingitem__isValidAndPaidexactc                   @      e Zd ZeZg dZdS )zPurchaseOrderFilter.Meta)r:  r  couponIdr  
isCanceled
isRefundedr   isValidAndPaidN)r   r    r!   PurchaseOrdermodelfieldsr   r   r   r   Meta]      r  N)
r   r    r!   r   DateTimeFiltercurrentDatepreviousDateBooleanFilterr  r  r   r   r   r   r  V  s    r  c                   @   8   e Zd Zej dZeZ	e
ZejegZeZdgZdS )PurchaseOrderListr
  rp   N)r   r    r!   r  r;   r@   r   r   r]   r   r%   rb  rU  rV  r   r   r  filterset_classrW  r   r   r   r   r  k      

r  c                   @   r   )PurchaseOrderDetailN)	r   r    r!   r  r;   r@   r   r]   r   r   r   r   r   r  t  r   r  c                   @   r^  )SupplierListrp   r  r  r   N)r   r    r!   Supplierr;   r@   r   r   SupplierSerializerr   r%   rb  rU  rV  r   r   r   rW  r   r   r   r   r  y  rc  r  c                   @   r   )SupplierDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r  )SupplierPhoneListrp   r   r  N)r   r    r!   SupplierPhoner;   r@   r   r   SupplierPhoneSerializerr   r%   rb  r   r   r   r   r   r   r   r    r  r  c                   @   r   )SupplierPhoneDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   rG  )SupplierCreditCardListr   N)r   r    r!   SupplierCreditCardr;   r@   r   SupplierCreditCardSerializerr   r   r   r   r   r   r   r   r    rL  r  c                   @   r   )SupplierCreditCardDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r     r   r   c                   @   s4   e Zd Zej ZeZe	Z
egZdgZdddZdS )SupplierDocumentListr   Nc              	   C   sV  | j jd}|d urt|d}| j jd}| j jd}| j jd}| j jd}td }	td t| }
tj	
|	d	krHt|	 tj	
|
d	krUt|
 |
d
 | }t|dd}|| t|d|| d |d
 |  d}| j jd}| j jd}tjjt|d}|j||||||d t| |  d S |  d S )NfileDocumentBase64r   r   fileDocumentNamecontentTypefileDocumentExtensionz/suppliers/z/suppliers/supplier_Tr   zwb+)r   modefileDocumentr   r   r   r   )fileNamer  r  r   r   r   )r   rT   r   r   r   r   r   r   r   r   r   mkdirr   writer   r   r   r  r;   r   r   close)r   r_   r   r  rT   r   r  r  r  Z
parentPath	childPathZfilePathr   ZnewFiler   r   Zsupplierr   r   r   r     sL   


	
	z#SupplierDocumentList.perform_creater   )r   r    r!   SupplierDocumentr;   r@   r   SupplierDocumentSerializerr   r%   rb  r   r   r   r   r   r   r   r   r    s    
r  c                   @   r   )SupplierDocumentDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r  )SubscriptionListr
  r   r  N)r   r    r!   Subscriptionr;   r@   r   r   SubscriptionSerializerr   r%   rb  r   r   r   r   r   r   r   r    r  r  c                   @   r   )SubscriptionDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r^  )DeliveryManListrp   r  r  r   N)r   r    r!   DeliveryManr;   r@   r   r   DeliveryManSerializerr   r%   rb  rU  rV  r   r   r   rW  r   r   r   r   r    rc  r  c                   @   r   )DeliveryManDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   s,   e Zd Zej ZeZe	Z
egZddgZdS )DeliveryManPhoneListdeliveryManIdr  N)r   r    r!   DeliveryManPhoner;   r@   r   DeliveryManPhoneSerializerr   r%   rb  r   r   r   r   r   r   r   r    s    
r  c                   @   r   )DeliveryManPhoneDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r  )ShippingItemListr
  purchaseOrderIdN)r   r    r!   ShippingItemr;   r@   r   r   ShippingItemSerializerr   r%   rb  r   r   r   r   r   r   r   r    r  r  c                   @   r   )ShippingItemDetailN)	r   r    r!   r  r;   r@   r   r   r   r   r   r   r   r!    r   r!  c                   @   6   e Zd ZejdddZejdddZG dd dZdS )ShippingAddressFilterr   r  r  r  c                   @   r  )zShippingAddressFilter.Meta)shippingItemIdtrackNumberr  r  N)r   r    r!   ShippingAddressr  r  r   r   r   r   r  '  r  r  Nr   r    r!   r   r  r  r  r  r   r   r   r   r#  #      r#  c                   @   s&   e Zd ZeZeZegZe	Z
dd ZdS )ShippingAddressListc                 C   sF   | j jd}|d urtjj|djdddS tjjdddS )Nr%  )r%  F)Z+shippingItemId__purchaseOrderId__isCanceled-shippingItemId)r   rO   r   r&  r;   r<   r   )r   r%  r   r   r   r   7  s   z ShippingAddressList.get_querysetN)r   r    r!   ShippingAddressSerializerr   r%   rb  r   r   r#  r  r   r   r   r   r   r)  1  s    r)  c                   @       e Zd Zej dZeZ	dS )ShippingAddressDetailr*  N)
r   r    r!   r&  r;   r@   r   r   r+  r   r   r   r   r   r-  E      r-  c                   @   r  )	TrackListr
  shippingAddressIdr1  N)r   r    r!   Trackr;   r@   r   r   TrackSerializerr   r%   rb  r   r   r   r   r   r   r   r/  J  r  r/  c                   @   r   )TrackDetailN)	r   r    r!   r1  r;   r@   r   r2  r   r   r   r   r   r3  R  r   r3  c                   @   s2   e Zd Zej dZeZ	e
gZddgZeZdS )SalesOrderListr  r   r$  N)r   r    r!   
SalesOrderr;   r@   r   r   SalesOrderSerializerr   r   r   r   r%   rb  r   r   r   r   r4  W  s    r4  c                   @   r   )SalesOrderDetailN)	r   r    r!   r5  r;   r@   r   r6  r   r   r   r   r   r7  _  r   r7  c                   @   rG  )ItemKeyNameListr   N)r   r    r!   r:   r;   r@   r   ZItemKeyNameSerializerr   r   r   r   r   r   r   r   r8  d  rL  r8  c                   @   s   e Zd ZejdddZejdddZejdddZejdddZ	ejdddZ
ejdddZejdddZejd	d
ej dZG dd dZdS )
ItemFilter
totalViewsr  r  r   item_sku__amountlter1   r5   r  rp   r   to_field_namer   c                   @   r  )zItemFilter.Meta)rp   r   r0   isTop
isFavoriteisMostDiscountisMostViewedisNewArrivalisElectronicr:  rs  r  r   r  r   r;  rK   rL   rI   rJ   amountN)r   r    r!   r:   r  r  r   r   r   r   r  {  r  r  N)r   r    r!   r   NumberFilterr:  
DateFilterr   rE  rI   rJ   rK   rL   ModelMultipleChoiceFilterr~  r;   r@   r  r  r   r   r   r   r9  k  s     r9  c                   @   s2   e Zd ZeZejegZe	Z
g dZeZdd ZdS )ItemList)Zitem_itemlanguage__namerp   r   c                 C   s:   | j jd}|dkrtjdS tjjddd S )Nr   r   r  Tr/   )r   rO   r   r:   r;   r   r<   distinctr   r   r   r   r     s
   zItemList.get_querysetN)r   r    r!   ItemSerializerr   rU  rV  r   r   r9  r  rW  r.   rb  r   r   r   r   r   rI    s    
rI  c                   @   r   )
ItemDetailN)	r   r    r!   r:   r;   r@   r   rK  r   r   r   r   r   rL    r   rL  c                   @   r   )ItemLanguageListr   r   N)r   r    r!   ItemLanguager;   r@   r   ItemLanguageSerializerr   r   r   r   r   r   r   r   rM    r   rM  c                   @   r   )ItemLanguageDetailN)	r   r    r!   rN  r;   r@   r   rO  r   r   r   r   r   rP    r   rP  c                   @   s*   e Zd Zej ZeZe	gZ
dgZeZdS )FeatureBulletListr   N)r   r    r!   FeatureBulletr;   r@   r   FeatureBulletSerializerr   r   r   r   r%   rb  r   r   r   r   rQ    s    
rQ  c                   @   r   )FeatureBulletDetailN)	r   r    r!   rR  r;   r@   r   rS  r   r   r   r   r   rT    r   rT  c                   @   r   )FeatureBulletLanguageListfeatureBulletIdr   N)r   r    r!   FeatureBulletLanguager;   r@   r   FeatureBulletLanguageSerializerr   r   r   r   r   r   r   r   rU    r   rU  c                   @   r   )FeatureBulletLanguageDetailN)	r   r    r!   rW  r;   r@   r   rX  r   r   r   r   r   rY    r   rY  c                   @   r   )EligibleListr   rC  N)r   r    r!   Eligibler;   r@   r   EligibleSerializerr   r   r   r   r   r   r   r   rZ    r   rZ  c                   @   r   )EligibleDetailN)	r   r    r!   r[  r;   r@   r   r\  r   r   r   r   r   r]    r   r]  c                   @   r,  )SKUCostListr
  N)
r   r    r!   SKUCostr;   r@   r   r   SKUCostSerializerr   r   r   r   r   r^    r.  r^  c                   @   r   )SKUCostDetailc                 C   s:   | j jd}|dkrtj dS tjjdddS )Nr   r   r
  Tr   )r   rO   r   r_  r;   r@   r   r<   r   r   r   r   r     s
   zSKUCostDetail.get_querysetN)r   r    r!   r`  r   r   r   r   r   r   ra    r   ra  c                   @   sR   e Zd ZejdddZejdddZejdddZejdddZG dd	 d	Z	d
S )	SKUFilterrE  r<  r  rW   r  rX   gtc                   @   r  )zSKUFilter.Meta)r   discount_gtr3   r4   rE  r   ZitemId__departmentIdZitemId__brandIdZitemId__supplierIdZitemId__newArrivalIdZitemId__isTopZitemId__isFavoriteZitemId__isApprovedN)r   r    r!   rY   r  r  r   r   r   r   r    r  r  N)
r   r    r!   r   rF  rE  r3   r4   rd  r  r   r   r   r   rb    s    rb  c                   @   s:   e Zd Zej dZeZ	e
ZejegZeZg dZdS )SKUListr
  )rp   r   r   N)r   r    r!   rY   r;   r@   r   r   r   r   rV   rb  rU  rV  r   r   rb  r  rW  r   r   r   r   re    s    
re  c                   @   r   )	SKUDetailN)	r   r    r!   rY   r;   r@   r   r   r   r   r   r   r   rf    r   rf  c                   @   s<   e Zd Zej dZeZ	e
jegZddgZdddZdS )SKUImageListr
  rp   r   Nc              	   C   s  | j jd}d }|d urg| j jd}t|d}t|}t	|}t }	|j
|	| d | j jd}
t|	d|
|	 d d|  d}| j jd	}tjjt|d
}|j
||d}|
  d S | j jd	}tjjt|d
}|j
|d}|
  d S )Nr   r   r   r   r   r   r   r   r   r   )r   r   )r   )r   rT   r   r   r   r   r   r   r   r   r   r   r   r   rY   r;   r   )r   r_   r   r   r   r   rT   r   r   r   r   r   r   r   r   r   r     s>   


	zSKUImageList.perform_creater   )r   r    r!   SKUImager;   r@   r   r   SKUImageSerializerr   rU  rV  r   r   rW  r   r   r   r   r   rg    s    
rg  c                   @   r   )SKUImageDetailNc              	   C   sd  | j jd}|d ur| j jd}| j jd}t|d}t|}t	|}t }	|j
|	| d | j jd}
t|	d|
|	 d d|  d	}| j jd
}| j jd}tjjt|d}|d urtjtd t|jj d t|j d | d | rttd t|jj d t|j d | d |  |j
||d d S |
  d S )Nr   r   r   r   r   r   r   r   r   rp   r   r   z/items/item_z/sku_z/images/r   )r   r   )r   rT   r   r   r   r   r   r   r   r   r   r   r   r   rY   r;   r   r   r   r   r   r   rp   r   )r   r_   r   r   r   r   rT   r   r   r   r   r   rp   r   ZselectedSKUr   r   r   r   I  s|   


	

zSKUImageDetail.perform_updater   )
r   r    r!   rh  r;   r@   r   ri  r   r   r   r   r   r   rj  E  r   rj  c                   @   rG  )SKUOptionListr   N)r   r    r!   	SKUOptionr;   r@   r   SKUOptionSerializerr   r   r   r   r   r   r   r   rk    rL  rk  c                   @   r   )SKUOptionDetailN)	r   r    r!   rl  r;   r@   r   rm  r   r   r   r   r   rn    r   rn  c                   @   r   )SKUOptionLanguageListskuOptionIdr   N)r   r    r!   SKUOptionLanguager;   r@   r   SKUOptionLanguageSerializerr   r   r   r   r   r   r   r   ro    r   ro  c                   @   r   )SKUOptionLanguageDetailN)	r   r    r!   rq  r;   r@   r   rr  r   r   r   r   r   rs    r   rs  c                   @   rG  )SKUDescriptionListr   N)r   r    r!   SKUDescriptionr;   r@   r   SKUDescriptionSerializerr   r   r   r   r   r   r   r   rt    rL  rt  c                   @   r   )SKUDescriptionDetailN)	r   r    r!   ru  r;   r@   r   rv  r   r   r   r   r   rw    r   rw  c                   @   r   )SKUDescriptionLanguageListskuDescriptionIdr   N)r   r    r!   SKUDescriptionLanguager;   r@   r    SKUDescriptionLanguageSerializerr   r   r   r   r   r   r   r   rx    r   rx  c                   @   r   )SKUDescriptionLanguageDetailN)	r   r    r!   rz  r;   r@   r   r{  r   r   r   r   r   r|    r   r|  c                   @   r  )ItemSubscriptionListr
  r   r  N)r   r    r!   ItemSubscriptionr;   r@   r   r   ItemSubscriptionSerializerr   r%   rb  r   r   r   r   r   r   r   r}    r  r}  c                   @   r   )ItemSubscriptionDetailN)	r   r    r!   r~  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   s.   e Zd Zej dZeZ	e
gZddgZdS )ShoppingCartItemListr
  shoppingCartIdr   N)r   r    r!   ShoppingCartItemr;   r@   r   r   ShoppingCartItemSerializerr   r   r   r   r   r   r   r   r    s
    r  c                   @   r   )ShoppingCartItemDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r  )PurchaseShippingItemListrp   r$  r   N)r   r    r!   PurchaseShippingItemr;   r@   r   r   PurchaseShippingItemSerializerr   r%   rb  r   r   r   r   r   r   r   r    r  r  c                   @   r   )PurchaseShippingItemDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r"  )RequestReturnFilterr   r  r  r  c                   @   r  )zRequestReturnFilter.Meta)r(  purchaseShippingItemIdZ&purchaseShippingItemId__shippingItemIdZreturnStatusId__keyNamer  r  r   N)r   r    r!   RequestReturnr  r  r   r   r   r   r    r  r  Nr'  r   r   r   r   r    r(  r  c                   @   s.   e Zd Zej dZeZ	e
ZegZeZdS )RequestReturnListr
  N)r   r    r!   r  r;   r@   r   r   RequestReturnSerializerDetailr   r%   rb  r   r   r  r  r   r   r   r   r    s    r  c                   @   r   )RequestReturnDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r    r   r  c                   @   r  )SalesOrderItemListrp   salesOrderIdr   N)r   r    r!   SalesOrderItemr;   r@   r   r   SalesOrderItemSerializerr   r%   rb  r   r   r   r   r   r   r   r    r  r  c                   @   r   )SalesOrderItemDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  	  r   r  c                   @   r  )FavoriteListrp   r  r   N)r   r    r!   Favoriter;   r@   r   r   FavoriteSerializerr   r%   rb  r   r   r   r   r   r   r   r  	  r  r  c                   @   r   )FavoriteDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  	  r   r  c                   @   r  )ClientItemRateReviewListr
  r  r   N)r   r    r!   ClientItemRateReviewr;   r@   r   r   ClientItemRateReviewSerializerr   r%   rb  r   r   r   r   r   r   r   r  	  r  r  c                   @   r   )ClientItemRateReviewDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  	  r   r  c                   @   r  )ClientSupplierRateReviewListr
  r  r   N)r   r    r!   ClientSupplierRateReviewr;   r@   r   r   "ClientSupplierRateReviewSerializerr   r%   rb  r   r   r   r   r   r   r   r   	  r  r  c                   @   r   )ClientSupplierRateReviewDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  (	  r   r  c                   @   r  )FeedbackListr
  r  N)r   r    r!   Feedbackr;   r@   r   r   FeedbackSerializerr   r%   rb  r   r   r   r   r   r   r   r  -	  r  r  c                   @   r,  )FeedbackDetailr
  N)
r   r    r!   r  r;   r@   r   r   r  r   r   r   r   r   r  5	  r.  r  c                   @   r  )RequestListr
  r  isDoneN)r   r    r!   Requestr;   r@   r   r   RequestSerializerr   r%   rb  r   r   r   r   r   r   r   r  :	  r  r  c                   @   r   )RequestDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  B	  r   r  c                   @   r   )PolicyTypeListN	r   r    r!   
PolicyTyper;   r@   r   ZPolicyTypeSerializerr   r   r   r   r   r  G	  r   r  c                   @   r   )PolicyTypeDetailNr  r   r   r   r   r  L	  r   r  c                   @   s0   e Zd Zejddej dZG dd dZ	dS )PolicyHeaderFilterZpolicyTypeId__namer   r=  c                   @   s   e Zd ZeZddgZdS )zPolicyHeaderFilter.MetapolicyTypeIdpolicyTypeNameN)r   r    r!   PolicyHeaderr  r  r   r   r   r   r  X	  s
    r  N)
r   r    r!   r   rH  r  r;   r@   r  r  r   r   r   r   r  Q	  s    r  c                   @   s$   e Zd Zej ZeZe	gZ
eZdS )PolicyHeaderListN)r   r    r!   r  r;   r@   r   PolicyHeaderSerializerr   r   r   r  r  r   r   r   r   r  `	  s
    
r  c                   @   r   )PolicyHeaderDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  h	  r   r  c                   @   r   )PolicyHeaderLanguageListpolicyHeaderIdr   N)r   r    r!   PolicyHeaderLanguager;   r@   r   PolicyHeaderLanguageSerializerr   r   r   r   r   r   r   r   r  m	  r   r  c                   @   r   )PolicyHeaderLanguageDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  t	  r   r  c                   @   rG  )PolicyDescriptionListr  N)r   r    r!   PolicyDescriptionr;   r@   r   PolicyDescriptionSerializerr   r   r   r   r   r   r   r   r  y	  rL  r  c                   @   r   )PolicyDescriptionDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  	  r   r  c                   @   r   )PolicyDescriptionLanguageListpolicyDescriptionIdr   N)r   r    r!   PolicyDescriptionLanguager;   r@   r   #PolicyDescriptionLanguageSerializerr   r   r   r   r   r   r   r   r  	  r   r  c                   @   r   )PolicyDescriptionLanguageDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  	  r   r  c                   @   r,  )RechargeCostListr
  N)
r   r    r!   RechargeCostr;   r@   r   r   RechargeCostSerializerr   r   r   r   r   r  	  r.  r  c                   @   r   )RechargeCostDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  	  r   r  c                   @   r"  )RechargeFilterr   r  r  r<  c                   @   r  )zRechargeFilter.Meta)	sessionIdr:  r   	startDateendDateN)r   r    r!   Recharger  r  r   r   r   r   r  	  r  r  Nr   r    r!   r   r  r  r  r  r   r   r   r   r  	  r(  r  c                   @   r  )RechargeListr
  r   N)r   r    r!   r  r;   r@   r   r   r\   r   r%   rb  rU  rV  r   r   r  r  rW  r   r   r   r   r  	  r  r  c                   @   r   )RechargeDetailN)	r   r    r!   r  r;   r@   r   r\   r   r   r   r   r   r  	  r   r  c                   @   r"  )PaymentFilterr   r  r  r<  c                   @   r  )zPaymentFilter.Meta)rk   r  subscriptionId
rechargeIdr  r   r  N)r   r    r!   rl   r  r  r   r   r   r   r  	  r  r  Nr  r   r   r   r   r  	  r(  r  c                   @   r  )PaymentListr
  descriptionDetailN)r   r    r!   rl   r;   r@   r   r   PaymentSerializerr   r%   rb  rU  rV  r   r   r  r  rW  r   r   r   r   r  	  r  r  c                   @   r   )PaymentDetailN)	r   r    r!   rl   r;   r@   r   r  r   r   r   r   r   r  	  r   r  c                   @   s0   e Zd ZeZeZeje	gZ
eZdgZdd ZdS )SupplierPaymentListr  c                 C   sH   | j jd}|d urtjt|dt|dB d}|S tddi)Nr   r   r   r
  r   r   )	r   rO   r   rl   r;   r<   r
   r   r   )r   r   resultr   r   r   r   	  s   z SupplierPaymentList.get_querysetN)r   r    r!   r  r   r%   rb  rU  rV  r   r   r  r  rW  r   r   r   r   r   r  	  s    
r  c                   @   s2   e Zd Zej dZeZ	e
ZejgZdgZdS )AccessoryListrp   r   N)r   r    r!   	Accessoryr;   r@   r   r   AccessorySerializerr   r%   rb  rU  rV  r   rW  r   r   r   r   r  	  s    
r  c                   @   r   )AccessoryDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  	  r   r  c                   @   s6   e Zd Zej dZeZ	e
ZejegZddgZdS )AccessoryTransactionListr
  rk   accessoryIdN)r   r    r!   AccessoryTransactionr;   r@   r   r   AccessoryTransactionSerializerr   r%   rb  rU  rV  r   r   r   r   r   r   r   r  	  s    
r  c                   @   r   )AccessoryTransactionDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  
  r   r  c                   @   r^  )EmployeeListrp   r  r  fullNameN)r   r    r!   Employeer;   r@   r   r   EmployeeSerializerr   r%   rb  rU  rV  r   r   r   rW  r   r   r   r   r  
  s    
r  c                   @   r   )EmployeeDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  
  r   r  c                   @   s2   e Zd Zej dZeZ	e
ZegZg dZdS )SystemTrafficListr  )countrycitystatedeviceIPopenFromN)r   r    r!   SystemTrafficr;   r@   r   r   SystemTrafficSerializerr   r%   rb  r   r   r   r   r   r   r   r  
  r  r  c                   @   r   )SystemTrafficDetailN)	r   r    r!   r  r;   r@   r   r  r   r   r   r   r   r  
  r   r  )r   r   r   PILr   r   r   snow_flake.modelsZsnow_flake.serializersZdjango_filters.rest_frameworkr   r   r   rU  django_filtersZrest_framework.responser	   django.db.modelsr
   django.core.files.uploadedfiler   rest_framework.exceptionsr   django.viewsr   django.httpr   r   Zsnow_flake_api.settingsr   r   r   ZBaseAuthenticationr   r#   ZPageNumberPaginationr%   r-   r.   rV   ZListAPIViewrZ   r   ZListCreateAPIViewr   ZRetrieveUpdateDestroyAPIViewr   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r"  r#  r&  r'  r+  r,  r/  r0  r4  r5  r8  r9  r=  r>  rA  rB  rF  rH  rM  rN  rQ  rR  rX  rY  r]  r_  rd  re  ri  rj  rk  rl  ro  rp  rq  rr  rx  ry  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  r  r  r  r  r  r  	FilterSetr  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r!  r#  r)  r-  r/  r3  r4  r7  r8  r9  rI  rL  rM  rP  rQ  rT  rU  rY  rZ  r]  r^  ra  rb  re  rf  rg  rj  rk  rn  ro  rs  rt  rw  rx  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  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   s   ];  ~+B	6)	DL*7
			<	+	/=		