o
    xh@6                     @   s   d dl mZ d dlT d dlT d dlT d dlZdd Zdd 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dS )    )serializers)*Nc                 C   F   | j dr| j d jdd }|S | j dr| j d }|S d }|S )Nrequest isShowSessionPurchaseOrderDetailcontext__contains__query_paramsget)selfr    r   r/Users/waleedhassanin/Documents/GitHub/snow_flake_back_end_deploy/snow_flake_api/snow_flake_payment/serializers.py#getIsShowSessionPurchaseOrderDetail      
r   c                 C   r   )Nr   isShowSessionShippingItemDetailr   )r   r   r   r   r   "getIsShowSessionShippingItemDetail   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 )SessionPurchaseOrderSerializerc                   @      e Zd ZeZg dZdS )z#SessionPurchaseOrderSerializer.Meta)idcreatedDateupdatedDate	sessionId
sessionUrlstatuspaymentMethodIdorderFromIdcouponIdclientIdsessionPurchaseOrderCostpaymentMethod	orderFromcouponclientsessionShippingItemListtrackOrderListN)__name__
__module____qualname__SessionPurchaseOrdermodelfieldsr   r   r   r   Meta"       r,   c                 C   sD  d}d}t jj|jd}|D ]}tjj|jd}|D ]f}tjj|jjd}d }	| dkr1|d }	|	d ur|j|	j	 d }
|j|	j
 d }|j|	j d }|
| | |j |	j d }|
| | | |	j |j }||	j d }|| }t||j }|| }q||jj }|D ]}||jj|j  }qq|| }|||d}|S )Nr   sessionPurchaseOrderIdsessionShippingItemIdr   d   )subTotaldeliverytotal)SessionShippingItemobjectsfilterr   SessionPurchaseShippingItemSKUCost	skuCostId__len__skuPriceserviceCosthandlingCostpackingCosttaxCosttransactionFixedCosttransactionFeeCostmathceildeliveredQuantityshippingCostIdpriceadditionalPrice)r   instancer4   r5   r$   xsessionPurchaseShippingItemListyskuCostListskuCostr?   r@   rA   rB   r6   rD   overallZsessionPurchaseOrderCostDicr   r   r   get_sessionPurchaseOrderCost8   s>   z;SessionPurchaseOrderSerializer.get_sessionPurchaseOrderCostc                 C   0   t | }tjjt|jjd}t|d|idjS Nr2   
languageIdr   )	getLanguagePaymentMethodr8   r   strr   r   PaymentMethodSerializerdata)r   rK   rU   r    r   r   r   get_paymentMethodx      z0SessionPurchaseOrderSerializer.get_paymentMethodc                 C   rS   rT   )	rW   	OrderFromr8   r   rY   r   r   OrderFromSerializerr[   )r   rK   rU   r!   r   r   r   get_orderFrom}   r]   z,SessionPurchaseOrderSerializer.get_orderFromc                 C   .   |j d urtjjt|j jd}t|jS d S Nr2   )r   Couponr8   r   rY   r   CouponSerializerr[   )r   rK   r"   r   r   r   
get_coupon      

z)SessionPurchaseOrderSerializer.get_couponc                 C   ra   rb   )r   Clientr8   r   rY   r   ClientDisplaySerializerr[   )r   rK   r#   r   r   r   
get_client   rf   z)SessionPurchaseOrderSerializer.get_clientc                 C   sn   t | }|d ur5t|dkr3t| }t| }t| }t| }tjj|j	d}t
|d||||ddjS g S g S )N   r.   T)rU   isDashboardr   
isShowItemmanyr   )r   intrW   getIsDashboardgetIsShowItemr   r7   r8   r9   r   SessionShippingItemSerializerr[   )r   rK   r   rU   rk   rl   r   r$   r   r   r   get_sessionShippingItemList   s   z:SessionPurchaseOrderSerializer.get_sessionShippingItemListc                 C   s   t jj|jd}t|ddjS )N)r   T)rn   )
TrackOrderr8   r9   r   TrackOrderSerializerr[   )r   rK   r%   r   r   r   get_trackOrderList   s   z1SessionPurchaseOrderSerializer.get_trackOrderListN)r&   r'   r(   r   SerializerMethodFieldr    r!   r"   r#   r$   r%   r   r,   rR   r\   r`   re   ri   rs   rv   r   r   r   r   r      s     @r   c                   @   J   e Zd Ze Ze Ze ZG dd dZdd Z	dd Z
dd Zd	S )
rr   c                   @   r   )z"SessionShippingItemSerializer.Meta)r   r   r   rH   r/   shippingCostsessionShippingAddressrM   N)r&   r'   r(   r7   r*   r+   r   r   r   r   r,      r-   r,   c                 C   sN   t jjt|jjd r%t| }t jjt|jjd}t	|d|idj
S d S rT   )ShippingCostr8   r9   rY   rH   r   existsrW   r   ShippingCostSerializerr[   )r   rK   rU   ry   r   r   r   get_shippingCost   s
   z.SessionShippingItemSerializer.get_shippingCostc                 C   sJ   t jjt|jd r#t| }t jjt|jd}t|d|idj	S d S )Nr0   rU   rV   )
SessionShippingAddressr8   r9   rY   r   r|   rW   r    SessionShippingAddressSerializerr[   )r   rK   rU   rz   r   r   r   get_sessionShippingAddress   s
   z8SessionShippingItemSerializer.get_sessionShippingAddressc                 C   sd   t | }|d ur.t|dkr0t| }t| }t| }tjj|jd}t	|d|||ddj
S d S d S )Nrj   r0   T)rU   rk   rl   rm   )r   ro   rW   rp   rq   r:   r8   r9   r   %SessionPurchaseShippingItemSerializerr[   )r   rK   r   rU   rk   rl   rM   r   r   r   #get_sessionPurchaseShippingItemList   s   zASessionShippingItemSerializer.get_sessionPurchaseShippingItemListN)r&   r'   r(   r   rw   ry   rz   rM   r,   r~   r   r   r   r   r   r   rr      s    rr   c                   @   rx   )
r   c                   @   r   )z%SessionShippingAddressSerializer.Meta)r1   address1address2zipCode	countryIdstateIdcityIdr   r   countrystatecityN)r&   r'   r(   r   r*   r+   r   r   r   r   r,      r-   r,   c                 C   
   t | |S N)
getCountryr   rK   r   r   r   get_country      
z,SessionShippingAddressSerializer.get_countryc                 C   r   r   )getStater   r   r   r   	get_state   r   z*SessionShippingAddressSerializer.get_statec                 C   r   r   )getCityr   r   r   r   get_city   r   z)SessionShippingAddressSerializer.get_cityN)r&   r'   r(   r   rw   r   r   r   r,   r   r   r   r   r   r   r   r      s    r   c                   @   s:   e Zd Ze Ze ZG dd dZdd Zdd Z	dS )r   c                   @   r   )z*SessionPurchaseShippingItemSerializer.Meta)r   
totalPricer>   skuDiscountrG   r   r   r<   skuIdr1   skuN)r&   r'   r(   r:   r*   r+   r   r   r   r   r,      r-   r,   c                 C   s"   t |j|j\}}t||j S r   )calculatePricer>   r<   rE   rF   rG   )r   rK   rI   r<   r   r   r   get_totalPrice   s   z4SessionPurchaseShippingItemSerializer.get_totalPricec                 C   r   r   )getSKUr   r   r   r   get_sku   r   z-SessionPurchaseShippingItemSerializer.get_skuN)
r&   r'   r(   r   rw   r   r   r,   r   r   r   r   r   r   r      s    r   c                   @   s   e Zd ZG dd dZdS )ru   c                   @   r   )zTrackOrderSerializer.Meta)r   r   purchaseOrderIdr   r   N)r&   r'   r(   rt   r*   r+   r   r   r   r   r,      r-   r,   N)r&   r'   r(   r,   r   r   r   r   ru      s    ru   c                       sF   e Zd Ze ZdZdZdZG dd dZ	dd Z
 fddZ  ZS )SessionRechargeSerializerr   c                   @   r   )zSessionRechargeSerializer.Meta)r   r4   servicer   r   r   descriptionr   r   rechargeCostIdr   r    N)r&   r'   r(   SessionRecharger*   r+   r   r   r   r   r,     r-   r,   c                 C   r   r   )getPaymentMethodr   r   r   r   r\   %  r   z+SessionRechargeSerializer.get_paymentMethodc                    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   r3   Trj   sumTaxestransactionFeesr6   )superto_representationr   r   r6   r   r4   ZtaxesIdrI   r   ZisPercentageZ
fixedPrice)r   rK   retZcurrentValueZpreTotal	__class__r   r   r   (  s2   






z+SessionRechargeSerializer.to_representation)r&   r'   r(   r   rw   r    r   r   r6   r,   r\   r   __classcell__r   r   r   r   r   	  s    r   )rest_frameworkr   django.db.modelsZsnow_flake_payment.modelssnow_flake.serializersrE   r   r   ModelSerializerr   rr   r   r   ru   r   r   r   r   r   <module>   s    		 '