
    Ny/j}                     T   d dl mZmZmZ d dlmZ d dl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  edg          Z ed	d
           ee	          fded	z  dedd	fdZ G d de          Z G d de          Ze                    d          d	 ee	          fded	z  dedefd            Ze                    d           ee	          fdedededefd            Ze                    d          d	 ee           ee	          fded	z  dd	dedefd            Ze                    d          d	 ee           ee	          fdeded	z  dd	dedef
d             Ze                    d!          d	 ee           ee	          fdeded	z  dd	dedef
d"            Zd	S )#    )	APIRouterDependsHeader)	BaseModel)Session)get_session)cancel_redemptionfulfill_redemptionlist_benefitslist_redemptionsredeem_benefitget_admin_sessionbenefits)tagsNzX-Admin-Session)defaultaliasx_admin_sessionsessionreturnc                 &    t          ||            d S Nr   )r   r   s     @/home/agent/projects/FamilyDashboard/backend/app/api/benefits.pyrequire_adminr      s     g/////    c                   .    e Zd ZU eed<   dZedz  ed<   dS )RedeemRequestchild_idNidempotency_key)__name__
__module____qualname__int__annotations__r   str r   r   r   r      s/         MMM"&OS4Z&&&&&r   r   c                   $    e Zd ZU dZedz  ed<   dS )IdempotentActionRequestNr   )r    r!   r"   r   r%   r$   r&   r   r   r(   r(      s&         "&OS4Z&&&&&r   r(   z	/benefitsr   c                 $    t          ||           S N)r   )r   )r   r   s     r   get_benefitsr+   "   s    84444r   z/benefits/{benefit_id}/redeem
benefit_idpayloadc                 :    t          || |j        |j                  S r   )r   r   r   )r,   r-   r   s      r   post_redeem_benefitr/   '   s     ':w/?AXYYYr   z/admin/redemptions_c                 $    t          ||           S r*   )r   )r   r0   r   s      r   get_admin_redemptionsr2   0   s     Gh7777r   z*/admin/redemptions/{redemption_id}/fulfillredemption_idc                 6    t          || |r|j        nd           S r   )r
   r   r3   r-   r0   r   s       r   post_fulfill_redemptionr6   9   s%     g}QX6bg6M6M^bcccr   z)/admin/redemptions/{redemption_id}/cancelc                 6    t          || |r|j        nd           S r   )r	   r   r5   s       r   post_cancel_redemptionr8   C   s%     WmPW5aW5L5L]abbbr   ) fastapir   r   r   pydanticr   sqlmodelr   app.db.sessionr   app.services.benefitsr	   r
   r   r   r   app.services.admin_authr   routerr%   r   r   r(   getr#   dictr+   postr/   r2   r6   r8   r&   r   r   <module>rC      s   . . . . . . . . . .             & & & & & &              6 5 5 5 5 5		%	%	% #)&=N"O"O"Ow{++0 04Z00 
0 0 0 0' ' ' ' 'I ' ' '
' ' ' ' 'i ' ' ' K(,AUAU 5 53: 5w 5Z^ 5 5 5 5 ,-- w{++Z ZZZ Z 
	Z Z Z .-Z  !!gm$$w{++8 8Dj88 8 
	8 8 8 "!8 9:: /3gm$$w{++	d dd$t+d d 	d
 
d d d ;:d 899 /3gm$$w{++	c cc$t+c c 	c
 
c c c :9c c cr   