o
    ȟ1i	                     @   sp  d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZmZ d dlmZ eddZed	eeeefd
efddZed	eeeefddZejde
deeeefdefddZedeeeefded
efddZedeeeefdefddZedeefdefddZedeeeefd
efddZdS )     )	APIRouterDependsHTTPException)List)require_roleget_user)GenericResponse)GiftCardCreateGiftCardUpdateGiftCardAddToWalletRequest)GiftCardServicez
/gift_card)prefix/requestc                    s   | |  ddiS )NmessagezGift card created successfully.)save)r   userservice r   /app/api/gift_card.pycreate_gift_card   s   
r   c                    s   d|  dS )Nz"Gift cards populated successfully.r   data)get_all_gift_cards)r   r   r   r   r   r      s   r   z/{gift_card_id})response_modelgift_card_idc                    s&   | | }|stdddd|dS )N  Gift card not foundstatus_codedetailz!Gift card populated successfully.r   )Zget_gift_card_by_idr   )r   r   r   	gift_cardr   r   r   get_gift_card   s
   

r"   c                    s&   | | |}|stdddddiS )Nr   r   r   r   zGift card updated successfully.)update_gift_cardr   )r   r   r   r   Zupdated_gift_cardr   r   r   r#       s
   r#   c                    s$   | | }|stdddddiS )Ni  z=Cannot delete gift card - it may be already used or not foundr   r   zGift card deleted successfully.)delete_gift_cardr   )r   r   r   successr   r   r   r$   '   s
   
r$   z	/validatecodec                    s   | | }d|dS )NzGift card validation completed.r   )validate_gift_card)r&   r   resultr   r   r   r'   .   s   

r'   z/add-to-walletc                    s   | | j|}|d |dS )Nr   r   )Zadd_to_walletZgift_card_code)r   r   r   r(   r   r   r   add_gift_card_to_wallet3   s   r)   N)fastapir   r   r   typingr   core.security.authenticationr   r   schemar   Zschema.gift_cardr	   r
   r   Zservices.gift_cardr   routerpostr   getr   intr"   putr#   deleter$   strr'   r)   r   r   r   r   <module>   s*    
""