
    ڬfH?                         d dl mZmZ ddlmZ d dlmZmZ ddlm	Z	mZm
Z
 ddl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 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 ed   Z G d de      Z  G d de      Z! G d de      Z"y)   )ApplicationApplicationRequirement    )Vendor) ApplicationRequirementSerializerApplicationSerializer)UserSerializerr   VendorSerializer)APIView)status)validate_required_paramsValidationError)success_responsefailed_responsegenerate_random_text)User)TermType)r   )record)logger_settingsmsgc                   ,    e Zd ZddZddZddZddZy)ApplicationRequirementsCRUDViewNc                    t        d      }t        d| dt        d    d       	 |r[t        j                  j                  |      }t        |      }t        d| dt        d    d       t        |j                  d	
      S t        d| dt        d    d       t        d      S # t        j                  $ r7 t        d| dt        d    d       t        dt        j                        cY S t        $ rI}t        d| dt        d    dt        |              t        dt        j                        cY d }~S d }~ww xY w)N   info: startedz1 - GET request started for ApplicationRequirementpk	completedz1 - Application requirement retrieved successfullyz.Application requirement retrieved successfullydatar   warnfailedz. - Primary key needed for specific applicationz+Primary key needed for specific applicationr   error	not_found$ - Application requirement not found!Application requirement not foundr   code - An error occurred: zAn error occurred)r   r   log_msgr   objectsgetr   r   r"   r   DoesNotExistr   HTTP_404_NOT_FOUND	ExceptionstrHTTP_500_INTERNAL_SERVER_ERROR)selfrequestr   formatprocess_codeapplication_requirement
serializeres           ;D:\SB Projects\Vendor-App\main-backend\application\views.pyr/   z#ApplicationRequirementsCRUDView.get   sE   +A.v,r')*<)==nop	h*@*H*H*L*LPR*L*S'=>UV
v,r'+2F1GGxyz'Z__Brssv,r'(2C1DDrst&+XYY%22 	l7|nBw{/C.DDhij"'JQWQjQjkk 	h7|nBww/?.@@VWZ[\W]V^_`"':AfAfgg	hs+   AB( $B( (AE1E9>D=7E=Ec                    t        d      }t        d| dt        d    d       	 t        |g d       |j                  j                  d      }t        j                  j                  |      j                         s4t        d	| dt        d
    d       t        dt        j                        S |j                  j                  d      }t        j                  j                  |      j                         s4t        d	| dt        d
    d       t        dt        j                        S t        |j                        }|j                         rY|j!                          t        d| dt        d    d       t#        |j!                                t%        |j                  d      S t        d	| dt        d    d       t        dt        j&                        S # t(        $ r1}t        dt+        |       t        j&                        cY d }~S d }~wt,        $ rU}t        d| dt        d    dt+        |              t        dt+        |       t        j.                        cY d }~S d }~ww xY w)Nr   r   r   r   z2 - POST request started for ApplicationRequirement)application	term_typerequirementr>   r   r#   r'    - Application not foundApplication not foundr*   r?   z - Term type not foundzTerm type not foundr"   r    z/ - Application requirement created successfullyz,Application requirement created successfullyr!   validation_failedz - Validation failedzValidation failedzAn error occurred: r&   r,   )r   r   r-   r   r"   r/   r   r.   filterexistsr   r   r1   r   r   is_validsaveprintr   HTTP_400_BAD_REQUESTr   r3   r2   r4   )	r5   r6   r7   r8   application_idterm_type_idr:   ver;   s	            r<   postz$ApplicationRequirementsCRUDView.post(   s!   +A.v,r')*<)==opq	s$W.YZ$\\--m<N&&---@GGIv,r'+2F1GG_`a&+BIbIbcc"<<++K8L##**l*;BBDv,r'+2F1GG]^_&+@vG`G`aa9w||LJ""$!v,r'+2F1GGvwxjoo'('Z__Bpqq6l^2g6I.J-KK_`a"':A\A\]] 	j")<SWI'FVMhMhii 	s7|nBww/?.@@VWZ[\W]V^_`")<SVH'EFLqLqrr	ssE   B
G! 1A<G! .A>G! -3G! !	I7*&HI7I7"A
I2,I72I7c                 8   t        d      }t        d| dt        d    d       	 |s4t        d| dt        d    d       t        d	t        j
                  
      S t        j                  j                  |      }t        |g d       |j                  j                  d      }t        j                  j                  |      j                         s4t        d| dt        d    d       t        dt        j                  
      S t        ||j                        }|j!                         r@|j#                          t        d| dt        d    d       t%        |j                  d      S t        d| d|j&                   d       t        |j&                  t        j
                  
      S # t        j(                  $ r7 t        d| dt        d    d       t        dt        j                  
      cY S t*        $ rI}t        d| dt-        |       d       t        t-        |      t        j
                  
      cY d }~S d }~wt.        $ rI}t        d| dt        d    dt-        |              t        dt        j0                  
      cY d }~S d }~ww xY w)Nr   r   r   r   z1 - PUT request started for ApplicationRequirementr#   r$   z) - Application requirement id is requiredz&Application requirement id is requiredr*   r   )r?   r>   r@   r>   invalidz - Invalid application IDzInvalid application IDrC   r    z/ - Application requirement updated successfullyz,Application requirement updated successfullyr!   z" - Validation errors during updater&   r'   r(   r)    - ValidationError occurred! - An unexpected error occurred: An unexpected error occurred)r   r   r-   r   r   rJ   r   r.   r/   r   r"   r   rE   rF   r1   r   rG   rH   r   errorsr0   r   r3   r2   r4   )	r5   r6   r   r7   r8   r9   rK   r:   r;   s	            r<   putz#ApplicationRequirementsCRUDView.putC   sR   +A.v,r')*<)==nop	sv,r'(2C1DDmno&+SZ`ZuZuvv&<&D&D&H&HB&H&O#$W.YZ$\\--m<N&&---@GGIv,r')2D1EE^_`&+C&JcJcdd9:QX_XdXdeJ""$!v,r'+2F1GGvwx'Z__Bpqq6l^2j.?.?-@@bcd"z'8'8v?Z?Z[[%22 	l7|nBw{/C.DDhij"'JQWQjQjkk 	Q7|nBs1vh6QRS"s1vF4O4OPP 	s7|nBww/?.@@abefgbhaijk"'EFLqLqrr	ssK   5F/ B*F/ A&F/ .A F/ /AJ8J >I>JJ>JJJc                 0   t        d      }t        d| dt        d    d       	 t        j                  j                  |      }|j                          t        d| dt        d    d       t        d	
      S # t        j                  $ r7 t        d| dt        d    d       t        dt        j                        cY S t        $ rI}t        d| dt        d    dt        |              t        dt        j                        cY d }~S d }~ww xY w)Nr   r   r   r   z4 - DELETE request started for ApplicationRequirementr   r    z/ - Application requirement deleted successfullyz,Application requirement deleted successfullyr%   r&   r'   r(   r)   r*   rR   rS   )r   r   r-   r   r.   r/   deleter   r0   r   r   r1   r2   r3   r4   )r5   r6   r   r7   r8   r9   r;   s          r<   rW   z&ApplicationRequirementsCRUDView.deletea   s   +A.v,r')*<)==qrs
	s&<&D&D&H&HB&H&O##**,6l^2gk.B-CCrst#(VWW%22 	l7|nBw{/C.DDhij"'JQWQjQjkk 	s7|nBww/?.@@abefgbhaijk"'EFLqLqrr	ss%   AA; ;ADD>D
DDNNN__name__
__module____qualname__r/   rN   rU   rW        r<   r   r      s    h&s6s<sr_   r   c                   ,    e Zd ZddZddZddZddZy)ApplicationCRUDViewNc                    t        d      }t        d| dt        d    d       	 |r[t        j                  j                  |      }t        |      }t        d| dt        d    d       t        |j                  d	
      S t        j                  j                         }t        |d      }t        d| dt        d    d       t        |j                  d
      S # t        j                  $ r7 t        d| dt        d    d       t        dt        j                        cY S t        $ rU}t        d| dt        d    dt        |              t        dt        |       t        j                         cY d }~S d }~ww xY w)Nr   r   r   r   z& - GET request started for Applicationr   r    z% - Application retrieved successfullyz"Application retrieved successfullyr!   Tmanyz& - Applications retrieved successfullyz#Applications retrieved successfullyr&   r'   rA   rB   r*   rR   An unexpected error occurred: )r   r   r-   r   r.   r/   r   r   r"   allr0   r   r   r1   r2   r3   r4   )	r5   r6   r   r7   r8   r>   r:   applicationsr;   s	            r<   r/   zApplicationCRUDView.getr   ss   +A.v,r')*<)==cde	~)11555<2;?
v,r'+2F1GGlmn'Z__Bfgg*226682<dK
v,r'+2F1GGmno'Z__Bghh'' 	`7|nBw{/C.DD\]^"'>VE^E^__ 	~7|nBww/?.@@abefgbhaijk")GAx'PW]W|W|}}	~s-   AC AC AF'F/A
E?9F?Fc                    t        d      }t        d| dt        d    d       	 t        |ddg       |j                  j                  d      }t        j                  j                  |      j                         s4t        d	| dt        d
    d       t        dt        j                        S |j                  j                  d      }t        j                  j                  |      j                         s4t        d	| dt        d
    d       t        dt        j                        S t        |j                        }|j                         r@|j!                          t        d| dt        d    d       t#        |j                  d      S t        d	| dt        d
    d       t        |j$                  t        j                        S # t&        $ rI}t        d| dt)        |       d       t        t)        |      t        j                        cY d }~S d }~wt*        $ rU}t        d| dt        d    dt)        |              t        dt)        |       t        j,                        cY d }~S d }~ww xY w)Nr   r   r   r   z' - POST request started for Applicationuser_id
listing_idr   r#   rP    - Invalid user IDInvalid user IDr*    - Invalid listing IDInvalid listing IDrC   r    z# - Application created successfullyz Application created successfullyr!   z0 - Validation errors during Application creationr&   rQ   rR   re   )r   r   r-   r   r"   r/   r   r.   rE   rF   r   r   rJ   r   r   rG   rH   r   rT   r   r3   r2   r4   )r5   r6   r7   r8   ri   rj   r:   r;   s           r<   rN   zApplicationCRUDView.post   s+   +A.v,r')*<)==def	~$Wy,.GHll&&y1G<<&&'&299;v,r')2D1EEWXY&+<6C^C^__ )),7J>>((J(7>>@v,r')2D1EEZ[\&+?fFaFabb.GLLAJ""$!v,r'+2F1GGjkl'Z__Bdee6l^2gi.@-AAqrs"z'8'8v?Z?Z[[ 	Q7|nBs1vh6QRS"s1vF4O4OPP 	~7|nBww/?.@@abefgbhaijk")GAx'PW]W|W|}}	~sE   B
G 1A<G .A%G =G 	J >HJ J +A
I;5J ;J c                    t        d      }t        d| dt        d    d       	 |s4t        d| dt        d    d       t        d	t        j
                  
      S t        j                  j                  |      }t        |ddg       |j                  j                  d      }t        j                  j                  |      j                         s4t        d| dt        d    d       t        dt        j
                  
      S |j                  j                  d      }t        j                  j                  |      j                         s4t        d| dt        d    d       t        dt        j
                  
      S t        ||j                        }|j!                         r@|j#                          t        d| dt        d    d       t%        |j                  d      S t        |j&                  t        j
                  
      S # t        j(                  $ r7 t        d| dt        d    d       t        dt        j*                  
      cY S t,        $ rI}	t        d| dt/        |	       d       t        t/        |	      t        j
                  
      cY d }	~	S d }	~	wt0        $ rU}	t        d| dt        d    dt/        |	              t        dt/        |	       t        j2                  
      cY d }	~	S d }	~	ww xY w)Nr   r   r   r   z& - PUT request started for Applicationr#   r$   z - Application ID is requiredzApplication ID is requiredr*   r   ri   rj   rP   rk   rl   rm   rn   rC   r    z# - Application updated successfullyz Application updated successfullyr!   r&   r'   rA   rB   rQ   rR   re   )r   r   r-   r   r   rJ   r   r.   r/   r   r"   r   rE   rF   r   r   rG   rH   r   rT   r0   r1   r   r3   r2   r4   )
r5   r6   r   r7   r8   r>   ri   rj   r:   r;   s
             r<   rU   zApplicationCRUDView.put   s   +A.v,r')*<)==cde	~v,r'(2C1DDabc&+GfNiNijj%--11R18K$Wy.FGll&&y1G<<&&'&299;v,r')2D1EEWXY&+<6C^C^__ )),7J>>((J(7>>@v,r')2D1EEZ[\&+?fFaFabb.{NJ""$!v,r'+2F1GGjkl'Z__Bdee"z'8'8v?Z?Z[['' 	`7|nBw{/C.DD\]^"'>VE^E^__ 	Q7|nBs1vh6QRS"s1vF4O4OPP 	~7|nBww/?.@@abefgbhaijk")GAx'PW]W|W|}}	~sR   5H B*H A<H A&H +$H ALL!>J%L%L1A
L;LLc                 H   t        d      }t        d| dt        d    d       	 t        j                  j                  |      }|j                          t        d| dt        d    d       t        d	
      S # t        j                  $ r7 t        d| dt        d    d       t        dt        j                        cY S t        $ rU}t        d| dt        d    dt        |              t        dt        |       t        j                        cY d }~S d }~ww xY w)Nr   r   r   r   z) - DELETE request started for Applicationr   r    z# - Application deleted successfullyz Application deleted successfullyr%   r&   r'   rA   rB   r*   rR   re   )r   r   r-   r   r.   r/   rW   r   r0   r   r   r1   r2   r3   r4   )r5   r6   r   r7   r8   r>   r;   s          r<   rW   zApplicationCRUDView.delete   s   +A.v,r')*<)==fgh
	~%--11R18K 6l^2gk.B-CCfgh#(JKK'' 	`7|nBw{/C.DD\]^"'>VE^E^__ 	~7|nBww/?.@@abefgbhaijk")GAx'PW]W|W|}}	~s&   AA; ;AD!D!A
DD!D!rX   rY   rZ   r^   r_   r<   ra   ra   q   s    ~*~6~B~r_   ra   c                       e Zd ZddZy)FullApplicantDetailNc                    t        d      }t        d| dt        d    d       	 t        j                  j                  |      }|j                  j                  }t        j                  j                  |      }|j                         s4t        d| dt        d	    d
       t        dt        j                        S t        j                  j                  |      }t        |d      }	t!        |d      }
|	j"                  |
j"                  d}t        d| dt        d    d       t%        |d      S # t        j&                  $ r7 t        d| dt        d    d       t        dt        j(                        cY S t*        $ rU}t        d| dt        d    dt-        |              t        dt-        |       t        j.                        cY d }~S d }~ww xY w)Nr   r   r   r   z. - GET request started for FullApplicantDetailr   )idr#   rP   rk   rl   r*   )ri   Trc   )usersvendorsr    z - Data retrieved successfullyzData retrieved successfullyr!   r&   r'   rA   rB   rR   re   )r   r   r-   r   r.   r/   ri   rt   r   rE   rF   r   r   rJ   r   r	   r
   r"   r   r0   r1   r2   r3   r4   )r5   r6   rK   r7   r8   r>   ri   ru   rv   user_serializervendor_serializerr"   r;   s                r<   r/   zFullApplicantDetail.get   s   +A.v,r')*<)==klm	~%--11^1DK!)),,GLL''7'3E<<>v,r')2D1EEWXY&+<6C^C^__nn++G+<G,U>O 0t D(--,11D 6l^2gk.B-CCabc#3PQQ'' 	`7|nBw{/C.DD\]^"'>VE^E^__ 	~7|nBww/?.@@abefgbhaijk")GAx'PW]W|W|}}	~s-   BD9  A8D9 9AGG
A
GGGrY   )r[   r\   r]   r/   r^   r_   r<   rr   rr      s    ~r_   rr   N)#modelsr   r   vendor.modelsr   serializersr   r   application.serializersr	   r
   rest_framework.viewsr   rest_frameworkr   utils.validationr   r   utils.helperr   r   r   account.modelsr   terms.modelsr   utils.exceptionutils.loggerr   
utils.datar   r-   r   ra   rr   r^   r_   r<   <module>r      sr    7   P [ [ ( ! F ! Q Q    ! +  &Zsg Zsz_~' _~D~' ~r_   