
    h                         d Z ddlZddl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mZ ddlmZ  G d	 d
      Zy)zBrand.    N)HTTPException
UploadFile)Session)BrandCreateBrandUpdate)JWTPayloadSchema)	BrandBaseTblBrand)CustomResponsec                   d    e Zd ZdedefdZdedefdZde	de
defdZde	fd	Zd
e	fdZd
e	fdZy)BrandServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      0/var/www/html/RetailAPI/app/api/brand/service.py__init__zBrandService.__init__   s    
    
brand_databrand_imagec                   K   |st        dd      S |j                  }d| }t        |d      5 }t        j                  |j
                  |       d d d        |j                         }||d<   t        di |}| j                  j                  |       | j                  j                          t        ddd	|i
      S # 1 sw Y   nxY ww)N0zBrand image is requiredstatusmessageuploads/wbr   1zBrand created successfullyBrand_imager   r   data )r   filenameopenshutilcopyfileobjfile
model_dumpr
   r   addcommit)r   r   r   image_filename
image_pathbuffercreate_data	new_brands           r   create_brandzBrandService.create_brand   s     !6OPP$--/0
*d#v{//8 $ ++-%/M"+{+	I0,
 	
 $#s   -C	!B=A-C	=CC	brand_idc                 2  K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      S |j                  |j                  |_        |j                  |j                  |_        |r|j                  }d| }t        |d      5 }t        j                  |j                  |       d d d        |j                  rHt        j                   j#                  |j                        rt        j$                  |j                         ||_        | j                   j'                          | j                   j)                  |       t        ddd|j                  i	      S # 1 sw Y   xY ww)
Nr   Brand not foundr   r   r   r   zBrand updated successfully	image_urlr    )r   queryr
   filterr1   firstr   
brand_name	rationaler#   r$   r%   r&   r'   r   ospathexistsremover*   refresh)r   r1   r   r   brandr+   r,   r-   s           r   update_brandzBrandService.update_brand%   s:    h'..x/@/@H/LMSSU!6GHH  ,)44E+(22EO(11N#N#34Jj$'6"";#3#3V< (  RWW^^E4E4E%F		%++, !+ES2NVachctctUuvv ('s   B6F8!FB2FFFc                    K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |S w)N  r3   status_codedetail)r   r5   r
   r6   r1   r7   r   )r   r1   r?   s      r   get_brand_by_idzBrandService.get_brand_by_id;   sM     h'..x/@/@H/LMSSUC8IJJ   AA!group_idc                    K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |S w)NrB   zNo brands found for this grouprC   )r   r5   r
   r6   rH   allr   )r   rH   brandss      r   get_brands_by_group_idz#BrandService.get_brands_by_group_idA   sM     x(//0A0AX0MNRRTC8XYYrG   c                    K   t        j                  || j                        }|st        dd      S t        dd      S w)Nz-1r3   r   r   zBrand deleted successfully)r
   deleter   r   )r   rH   deleteds      r   delete_brandzBrandService.delete_brandH   s9     //(DGG4!7HIIS2NOOs   =?N)__name__
__module____qualname__r   r   r   r   r   r0   intr   r@   rF   rL   rP   r"   r   r   r   r      sn    7 +; 
[ 
z 
$w3 wK wV` w,c S P3 Pr   r   )__doc__r:   r%   fastapir   r   sqlalchemy.ormr   app.api.brand.schemasr   r   app.dependency.authanticationr   app.models.main.brandr	   r
   app.utils.schemas_utilsr   r   r"   r   r   <module>r\      s,     	  - " : : 5 2>P >Pr   