
    NhE4                     j   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	 d dl
mZmZ d dl d dlmZ d dl d	d
lmZ d dl d dlmZ d dlmZmZ d dlmZ d dlmZ  G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z y)     )request)APIView)Responsestatus)RefreshToken)make_passwordcheck_password)*)authenticate   )authenticated)EndUser)ChatBotr   )Subscription)nowc                       e Zd Zd Zy)
AdminLogInc           	      j   	 |j                   j                  d      }|j                   j                  d      }|r|st        ddit        j                        S t        ||      }|rqt        j                  |      }t        dt        |j                        t        |      |j                  |j                  |j                  dt        j                        S t        dd	it        j                        S # t        $ r3}t        dd
t        |       it        j                         cY d }~S d }~ww xY w)NemailpasswordmessageEmail and password are requiredr   )usernamer   zLogin successful)r   accessrefreshuser_idr   is_staffzInvalid email or passwordzLogin failed: )datagetr   r   HTTP_400_BAD_REQUESTr   r   for_userstraccess_tokenidr   r   HTTP_200_OKHTTP_401_UNAUTHORIZED	ExceptionHTTP_500_INTERNAL_SERVER_ERROR)selfr   r   r   userr   es          ./var/www/html/aiagenthome/admin_panel/views.pypostzAdminLogIn.post   s	   	rLL$$W-E||''
3H,M NW]WrWrssBD&//51!'"6"67"7|#ww!ZZ $! !,,. .  ,G HQWQmQmnn 	rY.Q(AB6KpKpqq	rs+   AC6 A?C6 C6 6	D2?(D-'D2-D2N__name__
__module____qualname__r.        r-   r   r      s    rr4   r   c                       e Zd Zd Zy)AdminRegisterc                 ,   	 |j                   j                  d      }|j                   j                  d      }|r|st        ddit        j                        S t
        j                  j                  |      j                         rt        ddit        j                        S t
        j                  j                  |||      }t        j                  j                  ||t        |      	      }t        j                  |      }t        d
t        |j                         t        |      |j"                  |j$                  dt        j&                        S # t(        $ r3}t        ddt        |       it        j*                        cY d }~S d }~ww xY w)Nr   r   r   r   r   )r   z#User with this email already exists)r   r   r   )r+   r   r   zAdmin registered successfully)r   r   r   r   r   zRegistration failed: )r   r    r   r   r!   Userobjectsfilterexistscreate_user
SuperAdmincreater	   r   r"   r#   r$   r%   r   HTTP_201_CREATEDr(   r)   )r*   r   r   r   r+   super_adminr   r,   s           r-   r.   zAdminRegister.post3   sb   !	yLL$$W-E||''
3H,M NW]WrWrss||"""/668,Q R[a[v[vww<<++! , D %,,33&x0 4 K #++D1G:g223w<77 --/ /  	yY*?Ax(HIRXRwRwxx	ys,   AE A
E $B2E 	F (FFFNr/   r3   r4   r-   r6   r6   2   s    "yr4   r6   c                       e Zd Zd Zd Zy)AdminProfilec                    	 	 t        |      }t        j                  j                  |      j                         }|st        ddit        j                        S t        j                  j                         j                         }|s(t        d|j                  dt        j                        S |j                  |j                   |j"                  |j$                  d}t        t        j&                  d|d	      S # t        $ r0}t        dt        |      it        j
                        cY d }~S d }~ww xY w# t        $ r0}t        dt        |      it        j(                        cY d }~S d }~ww xY w)
Nr   r   r%   user not foundz8Your account has been Inactive, Please contact to admin.)r   r   )	firstNamegenderphoneNumberimagezFetched Successfully)status_codestatus_messageall_data)r   r(   r   r#   r   r'   r8   r9   r:   firstHTTP_404_NOT_FOUNDr=   allr   HTTP_406_NOT_ACCEPTABLErF   rG   rH   rI   r&   r)   )r*   r   uidr,   user_obj	admin_objrL   s          r-   r    zAdminProfile.getZ   sQ   	]Z#G, ||**c*288:H ,< =fF_F_``#++//1779I+enwn}n} ~  GM  Ge  Ge  f  f &//"))'33!H 6+=+=Oeqyz{{+  ZCF 3F<X<XYYZ,  	]Ys1v.f6[6[\\	]sU   C= AD9 AD9 1AD9 =	D6%D1+D6,D9 1D66D9 9	E2%E-'E2-E2c                    	 	 t        |      }t        j                  j                  |      j                         }|st        ddit        j                        S t        j                  j                  |      j                         }|st        ddit        j                        S |j                  j                  d      }|j                  j                  d      }|j                  j                  d	      }|j                  j                  d
      }	||_        ||_        ||_        |	|_        |j%                          t'        d|       t        t        j(                  dd      S # t        $ r0}t        dt        |      it        j
                        cY d }~S d }~ww xY w# t        $ r0}t        dt        |      it        j*                        cY d }~S d }~ww xY w)Nr   r   rD   rE   r+   Admin not foundrF   rG   rH   rI   rR   zProfile updated successfully)rJ   rK   )r   r(   r   r#   r   r'   r8   r9   r:   rM   rN   r=   r   r    rF   rG   rH   rI   saveprintr&   r)   )
r*   r   rQ   r,   rR   rS   rF   rG   rH   rI   s
             r-   r.   zAdminProfile.postx   s   	]Z#G, ||***4::<H,< =fF_F_``"**11x1@FFHI,= >vG`G`aa((5I\\%%h/F ))-8KLL$$W-E"+I%I$/I!#IONN*Y'6+=+=Omnoo1  ZCF 3F<X<XYYZ2  	]Ys1v.f6[6[\\	]sU   E( AF$ AF$ (B?F$ (	F!1%FF!F$ F!!F$ $	G-%GGGNr0   r1   r2   r    r.   r3   r4   r-   rB   rB   Y   s    ]<]r4   rB   c                       e Zd Zd Zy)AdminUploadImagesc                 :   	 |j                   }|j                  d      }g }|D ]  }t        |      }|j                  |         t	        t
        j                  d|d      S # t        $ r0}t	        dt        |      it
        j                        cY d }~S d }~ww xY w)NrI   Success)rJ   rK   r   r   r   )
r   getlistuploadTheDocumentappendr   r   r&   r(   r#   r)   )r*   r   r   images
image_urlsrI   
image_pathr,   s           r-   r.   zAdminUploadImages.post   s    		_<<D\\'*FJ.u5
!!*-   6+=+=y`jkll 	_YA/8]8]^^	_s   AA! !	B*%BBBNr/   r3   r4   r-   r[   r[      s    
_r4   r[   c                       e Zd Zd Zy)AdminChatBotListingc                    	 	 t        |      }t        j                  j                  |      j                         }|st        ddit        j                        S t        j                  j                  |j                        j                         }|st        ddit        j                        S t        j                  j                         }g }|D ]  }|j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  |j*                  |j,                  |j.                  |j0                  j3                         d
        t        d|d	t        j4                        S # t        $ r0}t        dt        |      it        j
                        cY d }~S d }~ww xY w# t        $ r1}t        d
t        |      dt        j6                        cY d }~S d }~ww xY w)Nr   r   )r   zUser not foundrU   rV   )
r%   r   chatbot_namebusiness_typesbusiness_logobusiness_namebusiness_pdfchatbot_colorchatbot_style
created_atr]   r   r   Internal server errorr   details)r   r(   r   r#   r   r'   r=   r9   r:   rM   rN   r+   r   rO   r`   r%   r   rg   rh   ri   rj   rk   rl   rm   rn   	isoformatr&   r)   )	r*   r   rQ   r,   rR   rS   chatBotschatbot_listingbots	            r-   r    zAdminChatBotListing.get   s   &	CZ#G, "))000=CCEH ,< =fF_F_``"**11x}}1EKKMI,= >vG`G`aa**,H O&&{{$$((&&&&$$&&&&"%..":":"<(    	?KTZTfTfggA  ZCF 3F<X<XYYZD  	C(?CPQFS\b  ]B  ]B  C  C	CsU   F AG AG 2CG 	F>%F93F>4G 9F>>G 	G;
&G60G;6G;Nr0   r1   r2   r    r3   r4   r-   re   re      s    'Cr4   re   c                       e Zd Zd Zd Zy)AdminSubscritpionc                    	 	 t        |      }t        j                  j                         }g }|D ]  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  d        t        d|dt        j*                        S # t        $ r0}t        dt        |      it        j
                        cY d }~S d }~ww xY w# t        $ r1}t        dt        |      dt        j,                        cY d }~S d }~ww xY w)Nr   r   )r%   
plane_namedescriptionprice
start_dateend_date	durations	is_activetypern   
updated_atr]   ro   rp   rq   )r   r(   r   r#   r   r'   r   r9   rO   r`   r%   r{   r|   r}   r~   r   r   r   r   rn   r   r&   r)   )r*   r   admin_idr,   subscriptionssubscription_listsubs          r-   r    zAdminSubscritpion.get   s*   	CZ(1
 )00446M "$!((&&"%..#&?? YY"%.. #!$!$HH"%.."%..*  % 	;LMV\VhVhii+  ZCF 3F<X<XYYZ.  	C(?CPQFS\b  ]B  ]B  C  C	CsG   C CD 	D'%DDD DD 	E#&E	EEc           
      "   	 	 t        |      }|j                  }|j                  d      }|j                  d      }|j                  dd      }|j                  d      }|j                  d      }	|j                  d	      }
|j                  d
d      }|j                  d      }|r|r|r|	st        ddit        j                        S t        j                  j                  |||||	|
||      }t        d|j                  dt        j                        S # t        $ r0}t        dt        |      it        j
                        cY d }~S d }~ww xY w# t        $ r1}t        dt        |      dt        j                        cY d }~S d }~ww xY w)Nr   r   r{   r}   r|    r~   r   r   r   Tr   z8plane_name, price, start_date and end_date are required.)r{   r}   r|   r~   r   r   r   r   z"Subscription created successfully.)r   r%   rp   rq   )r   r(   r   r#   r   r'   r   r    r!   r   r9   r>   r%   r?   r)   )r*   r   r   r,   r   r{   r}   r|   r~   r   r   r   r   subscriptions                 r-   r.   zAdminSubscritpion.post   s   $	JZ(1 <<D,/JHHW%E((="5K,/Jxx
+H-Id3I88F#DU*H,f g'-'B'BD D (//66%'%!## 7 	L (LT`TcTcd#)#:#:< <9  ZCF 3F<X<XYYZ>  	J(?CPQFS#)#H#HJ J	JsN   D B:E 	AE 	E!%EEE EE 	F&F	F	FNrY   r3   r4   r-   ry   ry      s    C<%Jr4   ry   c                       e Zd Zd Zy)AdminSubscriptionEditc                    	 	 t        |      }t        j                  j                  |      j                         }|st        ddit        j                        S |j                  }|j                  d      }|j                  d      }|j                  dd      }	|j                  d	      }
|j                  d
      }|j                  d      }|j                  dd      }|j                  d      }||_        ||_        |	|_        |
|_        ||_        ||_        ||_        ||_        |j+                          t        ddit        j,                        S # t        $ r0}t        dt        |      it        j
                        cY d }~S d }~ww xY w# t        $ r1}t        dt        |      dt        j.                        cY d }~S d }~ww xY w)Nr   r   rD   zSubscription not foundr{   r}   r|   r   r~   r   r   r   Tr   z!Subscription updated successfullyrp   rq   )r   r(   r   r#   r   r'   r   r9   r:   rM   rN   r   r    r{   r}   r|   r~   r   r   r   r   rW   r&   r)   )r*   r   r%   r   r,   r   r   r{   r}   r|   r~   r   r   r   r   s                  r-   putzAdminSubscriptionEdit.put  s   #	CZ(1 (//66"6=CCEL,D EfNgNghh<<D,/JHHW%E((="5K,/Jxx
+H-Id3I88F#D&0L#!&L'2L$&0L#$,L!%.L"%.L" $LY(KLU[UgUghh;  ZCF 3F<X<XYYZ>  	C(?CPQFS\b  ]B  ]B  C  C	CsN   E AF C:F 	F%F
FF 
FF 	G&GGGN)r0   r1   r2   r   r3   r4   r-   r   r     s    $Cr4   r   c                       e Zd Zd Zy)AdminDashboardc                 V   	 	 t        |      }t        j                  j                         }t        j                  j                         }t               j                         }t        j                  j                  |      j                         }t        d|||ddt        j                        S # t        $ r0}t        dt        |      it        j
                        cY d }~S d }~ww xY w# t        $ r1}t        dt        |      dt        j                        cY d }~S d }~ww xY w)	Nr   r   )created_at__datez#Dashboard data fetched successfully)total_agentstotal_leadsnew_leads_todayro   rp   rq   )r   r(   r   r#   r   r'   r   r9   count	UserLeadsr   dater:   r&   r)   )r*   r   r   r,   r   r   todayr   s           r-   r    zAdminDashboard.getF  s   	JZ(1 #??002L $++113KEJJLE'//666NTTVO@$0#.'6	 ((* *  ZCF 3F<X<XYYZ,  	J(?CPQFS#)#H#HJ J	JsG   B2 B#C. 2	C+;%C& C+!C. &C++C. .	D(7&D#D(#D(Nrw   r3   r4   r-   r   r   E  s    Jr4   r   N)!urllibr   rest_framework.viewsr   rest_framework.responser   rest_frameworkr   rest_framework_simplejwt.tokensr   django.contrib.auth.hashersr	   r
   admin_panel.modelsdjango.contrib.authr   user_panel.modelsauthenticationr   admin_panel.functionsr   r   r   django.utils.timezoner   r   r6   rB   r[   re   ry   r   r   r3   r4   r-   <module>r      s     ( , ! 8 E   ,  ) # % . + %
r r<#yG #yN=]7 =]@_ _)C' )CXEJ EJP%CG %CRJW Jr4   