Ë
    zëj¶  ã                   óØ  — d dl mZmZ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 d dlmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZmZm Z   edg¬	«      Z!e!jE                  d
ed¬«       edd¬«       ee	«       ee«      fde#dedefd„«       Z$e!jK                  ded¬«       ee	«       ee«      fdededefd„«       Z&e!jE                  ded¬«       ee	«       ee«       edd¬«       ed d ¬«       eddd¬ «      fdeded!e#dz  d"e'd#e'f
d$„«       Z(e!jE                  d%ed&¬«       edd¬«       ee	«       ee«      fd'e'dedefd(„«       Z)e!jK                  d)eejT                  d*¬+«       ee	«       ee«      fdededefd,„«       Z+e!jK                  d-ed.¬«       ee	«       ee«      fdededefd/„«       Z,e!jK                  d0ed1¬«       ee	«       ee«      fdededefd2„«       Z-y)3é    )Ú	APIRouterÚDependsÚHTTPExceptionÚQueryÚstatus)ÚSession)Úget_db)Úrequire_admin_token)ÚUser)ÚContentPageOutÚFaqCreateRequestÚFaqIdRequestÚFaqListResponseÚFaqOutÚFaqUpdateRequestÚMessageÚSaveContentRequest)	Ú
create_faqÚ
delete_faqÚget_content_pageÚget_faqÚ	list_faqsÚsave_content_pageÚserialize_content_pageÚserialize_faqÚ
update_faqzadmin-content)Útagsz/get-contentz0Get Privacy Policy or Terms & Conditions content)Úresponse_modelÚsummary.z;privacy_policy | terms_conditions (aliases: privacy, terms))ÚdescriptionÚcontent_typeÚdbÚ_c                 óž   — 	 t        || «      }t        |«      S # t        $ r*}t        t        j                  t        |«      ¬«      |‚d }~ww xY w)N©Ústatus_codeÚdetail)r   Ú
ValueErrorr   r   ÚHTTP_400_BAD_REQUESTÚstrr   )r!   r"   r#   ÚpageÚes        ú>/var/www/html/kelly/kelly-backend/app/routers/admin/content.pyÚget_contentr.       sP   € ð[Ü  LÓ1ˆô " $Ó'Ð'øô ò [Ü¬×(CÑ(CÌCÐPQËFÔSÐYZÐZûð[ús   ‚ ™	A¢%AÁAz/save-contentz?Save Privacy Policy or Terms & Conditions (Save Changes button)Úbodyc                 óJ  — | j                   j                  «       st        t        j                  d¬«      ‚	 t        || j                  | j                   | j                  ¬«      }t        |«      S # t        $ r*}t        t        j                  t        |«      ¬«      |‚d }~ww xY w)NzTitle is requiredr%   )r!   ÚtitleÚcontent)r1   Ústripr   r   r)   r   r!   r2   r(   r*   r   )r/   r"   r#   r+   r,   s        r-   Úsave_contentr4   4   sŽ   € ð �:‰:×ÑÔÜ¬×(CÑ(CÐL_Ô`Ð`ð[Ü ØØ×*Ñ*Ø—*‘*Ø—L‘Lô	
ˆô " $Ó'Ð'øô ò [Ü¬×(CÑ(CÌCÐPQËFÔSÐYZÐZûð[ús   ·-A/ Á/	B"Á8%BÂB"z
/list-faqsz$List FAQs with search and paginationNzSearch question or answer)Úgeé2   é   éÈ   )r5   ÚleÚsearchÚskipÚlimitc                 ó|   — t        | |||¬«      \  }}t        ||||D �cg c]  }t        |«      ‘Œ c}¬«      S c c}w )N)r:   r;   r<   )Útotalr;   r<   Úfaqs)r   r   r   )r"   r#   r:   r;   r<   Úrowsr>   Úfs           r-   Úlist_faq_itemsrB   L   sJ   € ô ˜B v°DÀÔF�K€Dˆ%ÜØØØÙ(,Ó-© 1Œm˜AÕ¨Ñ-ô	ð ùò .s   Ÿ9z/get-faqzGet one FAQ by idÚfaq_idc                 ój   — t        || «      }|st        t        j                  d¬«      ‚t	        |«      S )NúFAQ not foundr%   )r   r   r   ÚHTTP_404_NOT_FOUNDr   )rC   r"   r#   Úfaqs       r-   Úget_faq_itemrH   a   s1   € ô �"�fÓ
€CÙÜ¬×(AÑ(AÈ/ÔZÐZÜ˜ÓÐó    z/add-faqzAdd new FAQ)r   r&   r   c                 ó´  — | j                   j                  «       st        t        j                  d¬«      ‚| j
                  j                  «       st        t        j                  d¬«      ‚	 t        || j                   | j
                  | j                  ¬«      }t        |«      S # t        $ r*}t        t        j                  t        |«      ¬«      |‚d }~ww xY w)NúQuestion is requiredr%   úAnswer is required©ÚquestionÚanswerr   )
rN   r3   r   r   r)   rO   r   r(   r*   r   ©r/   r"   r#   rG   r,   s        r-   Úadd_faqrQ   q   s­   € ð �=‰=×ÑÔ Ü¬×(CÑ(CÐLbÔcÐcØ�;‰;×ÑÔÜ¬×(CÑ(CÐL`ÔaÐað[Ü˜ d§m¡m¸D¿K¹KÐPT×P[ÑP[Ô\ˆô ˜ÓÐøô ò [Ü¬×(CÑ(CÌCÐPQËFÔSÐYZÐZûð[ús   Á,-B$ Â$	CÂ-%CÃCz	/edit-faqz
Update FAQc                 ó  — | j                   j                  «       st        t        j                  d¬«      ‚| j
                  j                  «       st        t        j                  d¬«      ‚	 t        || j                  | j                   | j
                  | j                  ¬«      }|st        t        j                  d¬«      ‚t        |«      S # t        $ r*}t        t        j                  t        |«      ¬«      |‚d }~ww xY w)NrK   r%   rL   rM   rE   )rN   r3   r   r   r)   rO   r   rC   r(   r*   rF   r   rP   s        r-   Úedit_faqrS   ‡   sÍ   € ð �=‰=×ÑÔ Ü¬×(CÑ(CÐLbÔcÐcØ�;‰;×ÑÔÜ¬×(CÑ(CÐL`ÔaÐað	[ÜØØ�K‰KØ—]‘]Ø—;‘;Ø—;‘;ô
ˆñ Ü¬×(AÑ(AÈ/ÔZÐZÜ˜ÓÐøô	 ò [Ü¬×(CÑ(CÌCÐPQËFÔSÐYZÐZûð[ús   Á,8C Ã	C?Ã%C:Ã:C?z/delete-faqz
Delete FAQc                 ó|   — t        || j                  «      st        t        j                  d¬«      ‚t        d¬«      S )NrE   r%   zFAQ deleted)Úmessage)r   rC   r   r   rF   r   )r/   r"   r#   s      r-   Údelete_faq_itemrV   ¤   s0   € ô �b˜$Ÿ+™+Ô&Ü¬×(AÑ(AÈ/ÔZÐZÜ˜=Ô)Ð)rI   ).Úfastapir   r   r   r   r   Úsqlalchemy.ormr   Úapp.databaser	   Úapp.dependenciesr
   Ú
app.modelsr   Úapp.schemasr   r   r   r   r   r   r   r   Úapp.services.admin_servicer   r   r   r   r   r   r   r   r   ÚrouterÚgetr*   r.   Úpostr4   ÚintrB   rH   ÚHTTP_201_CREATEDrQ   rS   rV   © rI   r-   Ú<module>rd      s  ðß DÕ DÝ "å Ý 0Ý ÷	÷ 	ó 	÷
÷ 
õ 
ñ 
˜Ð)Ô	*€ð ‡�ØØ!Ø>ð ó ñ ØØQôñ ˜&“/ÙÐ)Ó*ñ(Øð(ð
 	ð(ð ò(óð
(ð ‡�ØØ!ØMð ó ñ ˜&“/ÙÐ)Ó*ñ(Ø
ð(àð(ð ò(óð
(ð& ‡�ØØ"Ø2ð ó ñ ˜&“/ÙÐ)Ó*Ù˜tÐ1LÔMÙ�a˜A”Ù�r˜a CÔ(ñØðàðð �$‰Jðð ð	ð
 òóð
ð  ‡�ØØØð ó ñ ˜ Ô"Ù˜&“/ÙÐ)Ó*ñØðàðð òóð
ð ‡�ØØØ×'Ñ'Øð	 ó ñ ˜&“/ÙÐ)Ó*ñØ
ðàðð òóðð  ‡�ØØØð ó ñ ˜&“/ÙÐ)Ó*ñØ
ðàðð òóð
ð0 ‡�ØØØð ó ñ ˜&“/ÙÐ)Ó*ñ*Ø
ð*àð*ð ò*óñ
*rI   