
      (i                     @   d dl m Z  d dlmZmZmZ d dlmZ d dlmZm	Z	m
Z
mZmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZ  ed	d
g          Z ed          Z e            Z e	e          fdedeeef         fdZdedefdZdefdZe                    dd           e	e          fdefd            Ze                     dee                    e	e          fd            Z!e                     de           e	e          fdefd            Z"e#                    dd           e	e          fdedefd             Z$e%                    d!d           e	e          fdefd"            Z&e                     d#ee                   d$             Z'd%S )&    )datetime)ListDictAny)ObjectId)	APIRouterDependsHTTPExceptionPathstatus)HTTPAuthorizationCredentials
HTTPBearer)
verify_jwt)get_col)ShippingFeeShippingFeeResponsez/shipping-feeszShipping Fees)prefixtagsshipping_feescredentialsreturnc                 t   | st          dd          | j        }t          |          \  }}|r|st          dd          |                    d          dk    rt          dd          t	          d	          }|                    d
t          |d                   i          }|st          dd          |S )Ni  zNot authenticatedstatus_codedetailzInvalid or expired tokenroleadmini  zAdmin access requiredadmins_idsubzAdmin not found)r
   r   r   getr   find_one_ensure_object_id)r   tokenokpayloadr   r   s         &D:\Nbitz\app\routers\ShippingRouter.py_require_adminr(      s     I4GHHHH#E U##KB PW P4NOOOO{{6g%%4KLLLL XFOOU$5gen$E$EFGGE G4EFFFFL    
identifierc                 j    t          j        |           st          dd          t          |           S )Ni  zInvalid identifierr   )r   is_validr
   )r*   s    r'   r#   r#   -   s8    Z(( J4HIIIIJr)   c                    t          t          | d                   | d         | d         | d         | d         |                     dt          j                              |                     dt          j                                        S )	Nr   state	combo_feedelivery_feeabove_500_fee	createdAt	updatedAt)idr.   r/   r0   r1   r2   r3   )r   strr!   r   utcnow)docs    r'   _serialize_feer8   3   sw    s5z??'lk"(/*''+x'8'899''+x'8'899   r)   z/admin/create   )r   r&   c                     t          j                    }|                                 }||d<   ||d<   t                              |          }t                              d|j        i          }dt          |          dS )Nr2   r3   r   zShipping fee createdmessagedata)r   r6   dictshipping_fee_col
insert_oner"   inserted_idr8   )r&   r   nowbodyrescreateds         r'   create_shipping_feerF   @   ss    
/

C<<>>DDD

%
%d
+
+C''(@AAG-~g7N7NOOOr)   z/admin/get-all)response_modelc                 H    d t                                           D             S )Nc                 ,    g | ]}t          |          S  r8   .0r7   s     r'   
<listcomp>z,list_shipping_fees_admin.<locals>.<listcomp>N        CCCCN3CCCr)   r?   find)r   s    r'   list_shipping_fees_adminrR   L   #    CC+;+@+@+B+BCCCCr)   z/admin/{fee_id}fee_idc                     t                               dt          |           i          }|st          dd          t	          |          S )Nr     Shipping fee not foundr   )r?   r"   r#   r
   r8   )rT   r   fees      r'   get_shipping_fee_adminrY   R   sN    

#
#U,=f,E,E$F
G
GC N4LMMMM#r)   z/admin/update/{fee_id}   c                 F   t          |           }|                                }t          j                    |d<   t                              d|id|i          }|j        dk    rt          dd          t                              d|i          }dt          |          d	S )
Nr3   r   z$setr   rV   rW   r   zShipping fee updatedr;   )
r#   r>   r   r6   r?   
update_onematched_countr
   r"   r8   )rT   r&   r   fee_oidrC   rD   rX   s          r'   update_shipping_feer_   Z   s    ''G<<>>D ))D

%
%ug&6
G
GC
A4LMMMM

#
#UG$4
5
5C-~c7J7JKKKr)   z/admin/delete/{fee_id}c                     t                               dt          |           i          }|j        dk    rt	          dd          ddiS )Nr   r   rV   rW   r   r<   zShipping fee deleted)r?   
delete_oner#   deleted_countr
   )rT   r   rD   s      r'   delete_shipping_feerc   h   sQ    

%
%u.?.G.G&H
I
IC
A4LMMMM-..r)   z	/all-feesc                  H    d t                                           D             S )Nc                 ,    g | ]}t          |          S rJ   rK   rL   s     r'   rN   z)get_all_shipping_fees.<locals>.<listcomp>s   rO   r)   rP   rJ   r)   r'   get_all_shipping_feesrf   q   rS   r)   N)(r   typingr   r   r   bsonr   fastapir   r	   r
   r   r   fastapi.securityr   r   app.utility.securityr   	app.db.dbr   app.models.ShippFeer   r   routerr?   auth_schemer5   r(   r#   r8   postrF   r!   rR   rY   putr_   deleterc   rf   rJ   r)   r'   <module>rs      sK         " " " " " " " " " "       C C C C C C C C C C C C C C E E E E E E E E + + + + + +       @ @ @ @ @ @ @ @	*/1B	C	C	C7?++  jll @Gw{?S?S   < X\]`be]eXf    2 #  (        	. 	 	 	 	 _#..4;GN4K4K P P P P P /.P T2E-FGG#*7>#:#: D D D HGD
 .ABB.5gn.E.E  3    CB $#66AHAXAX 
L 
L 
Lk 
L 
L 
L 76
L 'S99+27>+B+B / / / / / :9/ K-@(ABBD D CBD D Dr)   