
    ڬfA?                     x   d dl 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mZmZmZmZ d dlmZmZmZ dd	l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 ed   Z  G d de      Z! G d de      Z" G d de      Z# G d dejH                        Z% G d de      Z& G d de      Z' G d de      Z(y)    status)APIView)genericspermissions   )VendorCategoryVendorCategoryServicesVendor)Listing)VendorCategorySerializer VendorCategoryServicesSerializerVendorSerializerVendorListingCountSerializerSelectedProviderSerializer)success_responsefailed_responsegenerate_random_text)r   SelectedProvider)Application)validate_required_paramsvalidate)record)logger_settingsmsgc                   ,    e Zd ZddZddZddZddZy)VendorCategoryCRUDViewNc           	         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                  $ r- t        d| d       t        dt        j                        cY S t        $ r@}t        d| dt        |       d       t        dt        j                         cY d }~S d }~ww xY w)N   info: startedz- - VendorCategoryCRUDView GET request startedpk	completedz) - Vendor Category retrieved successfullyz&Vendor Category retrieved successfullydatar   Tmanyz+ - Vendor Categories retrieved successfullyz(Vendor Categories retrieved successfullywarnz: Vendor Category not foundVendor Category not foundr   codeerrorz= - Unexpected error occurred during Vendor Category retrievalAn unexpected error occurred)r   r   log_msgr	   objectsgetr   r   r'   allDoesNotExistr   r   HTTP_404_NOT_FOUND	ExceptionstrHTTP_500_INTERNAL_SERVER_ERROR)	selfrequestr$   formatprocess_codevendor_category
serializervendor_categorieses	            6D:\SB Projects\Vendor-App\main-backend\vendor\views.pyr2   zVendorCategoryCRUDView.get   sO   +A.v,r')*<)==jkl	s"0"8"8"<"<"<"C5oF
v,r'+2F1GGpqr'Z__Bjkk$2$:$:$>$>$@!56GdS
v,r'+2F1GGrst'Z__Blmm** 	d6l^+FGH"'BIbIbcc 	s7|nBs1vh6stu"'EFLqLqrr	s+   AC AC =E%E%%5E E% E%c           	      2   t        d      }t        d| dt        d    d       	 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        $ r@}t        d| dt        |       d       t        dt        j                        cY d }~S d }~ww xY w)Nr   r    r!   r"   z. - VendorCategoryCRUDView POST request startedr'   r%   z' - Vendor Category created successfullyz$Vendor Category created successfullyr&   r*   z4 - Validation errors during Vendor Category creationr,   r.   z< - Unexpected error occurred during Vendor Category creationr/   )r   r   r0   r   r'   is_validsaver   errorsr   r   HTTP_400_BAD_REQUESTr6   r7   r8   r9   r:   r;   r<   r>   r@   s         rA   postzVendorCategoryCRUDView.post'   s    +A.v,r')*<)==klm
	s1w||DJ""$!v,r'+2F1GGnop'Z__Bhii6l^2j.?.?-@@tuv"z'8'8v?Z?Z[[ 	s7|nBs1vh6rst"'EFLqLqrr	ss%   A%C A C 	D5DDDc           	      H   t        d      }t        d| dt        d    d       	 |s*t        d| d       t        dt        j
                  	      S t        j                  j                  |
      }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                  $ r- t        d| d       t        dt        j                   	      cY S t"        $ r@}t        d| dt%        |       d       t        dt        j&                  	      cY d }~S d }~ww xY w)Nr   r    r!   r"   z- - VendorCategoryCRUDView PUT request startedr*   z+: Vendor Category ID is required for updatezVendor Category ID is requiredr,   r#   rD   r%   z' - Vendor Category updated successfullyz$Vendor Category updated successfullyr&   z2 - Validation errors during Vendor Category updatez&: Vendor Category not found for updater+   r.   z: - Unexpected error occurred during Vendor Category updater/   )r   r   r0   r   r   rH   r	   r1   r2   r   r'   rE   rF   r   rG   r4   r5   r6   r7   r8   )r9   r:   r$   r;   r<   r=   r>   r@   s           rA   putzVendorCategoryCRUDView.put6   sx   +A.v,r')*<)==jkl	sv,/Z[\&+KRXRmRmnn,4488B8?O1/UJ""$!v,r'+2F1GGnop'Z__Bhii6l^2j.?.?-@@rst"z'8'8v?Z?Z[[** 	d6l^+QRS"'BIbIbcc 	s7|nBs1vh6pqr"'EFLqLqrr	s1   +D BD A D =F!F!!5FF!F!c           	      
   t        d      }t        d| dt        d    d       	 t        j                  j                  |      }|j                          t        d| dt        d    d       t        d	
      S # t        j                  $ r- t        d| d       t        dt        j                        cY S t        $ r@}t        d| dt        |       d       t        dt        j                        cY d }~S d }~ww xY w)Nr   r    r!   r"   z0 - VendorCategoryCRUDView DELETE request startedr#   r%   z' - Vendor Category deleted successfullyz$Vendor Category deleted successfullyr   r*   z(: Vendor Category not found for deletionr+   r,   r.   z< - Unexpected error occurred during Vendor Category deletionr/   )r   r   r0   r	   r1   r2   deleter   r4   r   r   r5   r6   r7   r8   )r9   r:   r$   r;   r<   r=   r@   s          rA   rP   zVendorCategoryCRUDView.deleteL   s    +A.v,r')*<)==mno
	s,4488B8?O""$6l^2gk.B-CCjkl#(NOO** 	d6l^+STU"'BIbIbcc 	s7|nBs1vh6rst"'EFLqLqrr	s$   AA; ;=D:D5C=7D=DNNN__name__
__module____qualname__r2   rJ   rL   rP        rA   r   r      s    s*ss,srY   r   c                   ,    e Zd ZddZddZddZddZy)VendorCategoryServicesCRUDViewNc           	         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                  $ r- t        d| d       t        dt        j                        cY S t        $ r@}t        d| dt        |       d       t        dt        j                         cY d }~S d }~ww xY w)Nr   r    r!   r"   z5 - VendorCategoryServicesCRUDView GET request startedr#   r%   z1 - Vendor Category Service retrieved successfullyz.Vendor Category Service retrieved successfullyr&   Tr(   z2 - Vendor Category Services retrieved successfullyz/Vendor Category Services retrieved successfullyr*   z#: Vendor Category Service not found!Vendor Category Service not foundr,   r.   z- - Unexpected error occurred during retrievalr/   )r   r   r0   r
   r1   r2   r   r   r'   r3   r4   r   r   r5   r6   r7   r8   )	r9   r:   r$   r;   r<   vendor_servicer>   vendor_servicesr@   s	            rA   r2   z"VendorCategoryServicesCRUDView.get]   sO   +A.v,r')*<)==rst	s!7!?!?!C!Cr!C!J=nM
v,r'+2F1GGxyz'Z__Brss"8"@"@"D"D"F=oTXY
v,r'+2F1GGyz{'Z__Bstt%22 	l6l^+NOP"'JQWQjQjkk 	s7|nBs1vh6cde"'EFLqLqrr	srB   c           	         t        d      }t        d| dt        d    d       	 t        |ddg       t	        d|j
                  j                  dd      d	g       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        $ r@}t        d| dt!        |       d       t        dt        j"                        cY d }~S d }~ww xY w)Nr   r    r!   r"   z6 - VendorCategoryServicesCRUDView POST request startedtitler=    zlength:max:50rD   r%   z/ - Vendor Category Service created successfullyz,Vendor Category Service created successfullyr&   r*   z< - Validation errors during Vendor Category Service creationr,   r.   z, - Unexpected error occurred during creationr/   )r   r   r0   r   r   r'   r2   r   rE   rF   r   rG   r   r   rH   r6   r7   r8   rI   s         rA   rJ   z#VendorCategoryServicesCRUDView.postr   s.   +A.v,r')*<)==stu	s$Ww8I.JKWgll..wr:_<MN9w||LJ""$!v,r'+2F1GGvwx'Z__Bpqq6l^2j.?.?-@@|}~"z'8'8v?Z?Z[[ 	s7|nBs1vh6bcd"'EFLqLqrr	ss%   BD A D 	E5EEEc           	      H   t        d      }t        d| dt        d    d       	 |s*t        d| d       t        dt        j
                  	      S t        j                  j                  |
      }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                  $ r- t        d| d       t        dt        j                   	      cY S t"        $ r@}t        d| dt%        |       d       t        dt        j&                  	      cY d }~S d }~ww xY w)Nr   r    r!   r"   z5 - VendorCategoryServicesCRUDView PUT request startedr*   z3: Vendor Category Service ID is required for updatez&Vendor Category Service ID is requiredr,   r#   rD   r%   z/ - Vendor Category Service updated successfullyz,Vendor Category Service updated successfullyr&   z: - Validation errors during Vendor Category Service updatez.: Vendor Category Service not found for updater]   r.   z* - Unexpected error occurred during updater/   )r   r   r0   r   r   rH   r
   r1   r2   r   r'   rE   rF   r   rG   r4   r5   r6   r7   r8   )r9   r:   r$   r;   r<   r^   r>   r@   s           rA   rL   z"VendorCategoryServicesCRUDView.put   sy   +A.v,r')*<)==rst	sv,/bcd&+SZ`ZuZuvv3;;??2?FN9.w||\J""$!v,r'+2F1GGvwx'Z__Bpqq6l^2j.?.?-@@z{|"z'8'8v?Z?Z[[%22 	l6l^+YZ["'JQWQjQjkk 	s7|nBs1vh6`ab"'EFLqLqrr	srM   c           	      
   t        d      }t        d| dt        d    d       	 t        j                  j                  |      }|j                          t        d| dt        d    d       t        d	
      S # t        j                  $ r- t        d| d       t        dt        j                        cY S t        $ r@}t        d| dt        |       d       t        dt        j                        cY d }~S d }~ww xY w)Nr   r    r!   r"   z8 - VendorCategoryServicesCRUDView DELETE request startedr#   r%   z/ - Vendor Category Service deleted successfullyz,Vendor Category Service deleted successfullyrO   r*   z0: Vendor Category Service not found for deletionr]   r,   r.   z, - Unexpected error occurred during deletionr/   )r   r   r0   r
   r1   r2   rP   r   r4   r   r   r5   r6   r7   r8   )r9   r:   r$   r;   r<   r^   r@   s          rA   rP   z%VendorCategoryServicesCRUDView.delete   s    +A.v,r')*<)==uvw	s3;;??2?FN!!#6l^2gk.B-CCrst#(VWW%22 	l6l^+[\]"'JQWQjQjkk 	s7|nBs1vh6bcd"'EFLqLqrr	srQ   rR   rS   rT   rX   rY   rA   r[   r[   \   s    s*s"s,srY   r[   c                       e Zd Zd Zy)CreateVendorViewc           	         t        d      }t        d| dt        d    d       |j                  }	 t        j
                  j                  |      j                         r*t        d| d       t        d	t        j                  
      S t        |j                        }|j                         rP|j                  |       t        d| dt        d    d       t        |j                  t        j                         S t        d| d|j"                          t        |j"                  t        j                        S # t$        $ rB}t        d| dt'        |       d       t        ddit        j(                        cY d }~S d }~ww xY w)Nr   r    r!   r"   z( - CreateVendorView POST request starteduserr*   z&: Vendor for this user already exists.z$Vendor for this user already exists.)r   r   rD   r%   z - Vendor created successfullyr   z: Validation errors - r.   z3 - Unexpected error occurred during vendor creationr/   )r   r   r0   ri   r   r1   filterexistsr   r   rH   r   r'   rE   rF   r   HTTP_201_CREATEDrG   r6   r7   r8   )r9   r:   argskwargsr<   ri   r>   r@   s           rA   rJ   zCreateVendorView.post   sa   +A.v,r')*<)==efg||	~~$$$$/668v,/UVW&-S!66  *w||<J""$T*v,r'+2F1GGefg'
@W@WXX6l^+A*BSBSATUV":#4#4V=X=XYY 	7|nBs1vh6ijk"89<< 	s+   AE  
A5E   ?E   	F	7F FFN)rU   rV   rW   rJ   rX   rY   rA   rf   rf      s    rY   rf   c                   d    e Zd Zej                  j                         ZeZe	j                  gZd Zy)UpdateVendorViewc                 j    t         j                  j                  | j                  j                        S )Nrh   )r   r1   r2   r:   ri   )r9   s    rA   
get_objectzUpdateVendorView.get_object   s$    ~~!!t||'8'8!99rY   N)rU   rV   rW   r   r1   r3   querysetr   serializer_classr   IsAuthenticatedpermission_classesrr   rX   rY   rA   rp   rp      s.    ~~!!#H'%556:rY   rp   c                       e Zd Zd Zy)VendorListingCountViewc                 t   	 t         j                  j                  |      }t        j                  j	                  |      j                         }||d}t        |      }t        |j                  t        j                        S # t         j                  $ r t        dt        j                  d      cY S w xY w)Nid)user_listing)	vendor_idtotal_applied_listingsr   zVendor not found)r.   r-   )r   r1   r2   r   rj   countr   r   r'   r   HTTP_200_OKr4   r   r5   )r9   r:   r}   vendorr~   r'   r>   s          rA   r2   zVendorListingCountView.get   s    	^^''Y'7F%,__%;%;%;%P%V%V%X"%*@D 6d;J#JOOF<N<NOO"" 	"+11$  	s   BB /B76B7NrU   rV   rW   r2   rX   rY   rA   rx   rx      s    rY   rx   c                       e Zd ZddZy)SelectedVendorsByUserNc                    	 t         j                  j                  |      }|j                         st	        dddt
        j                        S t        j                  j                  |      }|j                         st	        dddt
        j                        S t        |d	      }t        d
d|j                  d      S # t        $ r4}t        ddt        |       dt
        j                        cY d }~S d }~ww xY w)N)user_idfailedz#No applications found for the user.)r   r   r   )application_id__inzNo vendors selected by user.Tr(   successzVendors retrieved successfully)r   r   r'   zAn unexpected error occurred: )r   r1   rj   rk   r   r   r5   r   r   r   r'   r6   r7   r8   )r9   r:   r   r;   applicationsselected_providersr>   r@   s           rA   r2   zSelectedVendorsByUser.get   s   	Y&..55g5FL&&(&Af'gpv  qJ  qJ  K  K!1!9!9!@!@Vb!@!c%,,.&A_'`io  jC  jC  D  D34FTRJ#"7"%  
  	Y#xA_`cde`f_g?h$jrx  sX  sX  Y  Y	Ys+   AC AC %C 	D)C<6D<DrS   r   rX   rY   rA   r   r      s    YrY   r   c                       e Zd Zd Zy)SearchVendorFromCategoryViewc           
      ,   |j                   j                  d      }|st        ddit        j                        S 	 t
        j                  j                  |      }t        j                  j                  |      }|D cg c]G  }|j                  |j                  |j                  |j                  |j                  |j                   dI }}t#        d	|i      S # t        j                  $ r  t        ddit        j                        cY S w xY wc c}w )
Ncategory_idr.   z!category_id parameter is requiredr   rz   zCategory not found)r=   )r{   contact_detailcompany_registration_document
pan_number
vat_number
ceo_detailvendors)GETr2   r   r   rH   r	   r1   r   r4   r5   rj   r{   r   r   r   r   r   r   )	r9   r:   rm   rn   r   categoryr   r   vendor_lists	            rA   r2   z SearchVendorFromCategoryView.get   s   kkoom4"G-P#QZ`ZuZuvv	f%--11{1CH ..''('C "

  ii"("7"7171U1U$//$//$//

 

  K 899 "" 	f"G-A#B6KdKdee	f

s    C  AD0DDNr   rX   rY   rA   r   r      s    :rY   r   N))rest_frameworkr   rest_framework.viewsr   r   r   modelsr	   r
   r   listing.modelsr   serializersr   r   r   r   r   utils.helperr   r   r   r   application.modelsr   utils.validationr   r   utils.loggerr   
utils.datar   r0   r   r[   rf   UpdateAPIViewrp   rx   r   r   rX   rY   rA   <module>r      s    ! ( 0 B B " _  _ O O , * ?  &HsW HsVKsW Ks\w 4:x-- :W "YG Y&:7 :rY   