
    J)i                         d dl Z d dlZd dlmZ d dlmZ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 d d	lmZ  G d
 d      Zy)    N)List)FileFormHTTPException
UploadFile)Session)schema)CompetitorIntensityBaseTblCompetitorIntensity)CustomResponse)JWTPayloadSchema)Messagesc                       e Zd ZdedefdZ ed      fdej                  de	fdZ
defd	Z ed      fd
edej                  de	fdZd
efdZy)CompetitorIntensityServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      K/var/www/html/retail-simulation-api/app/api/competitor_intensity/service.py__init__z#CompetitorIntensityService.__init__   s    
    Nrequestupload_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Upload image is requiredstatusmessageuploads/wbr   1z%Upload image and created successfullyzUpload 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_competitorz,CompetitorIntensityService.create_competitor   s     !6PQQ%../0
*d#v|00&9 $((*&0N#*9[9	I; *-
 	
 $#s   -C	!B=A-C	=CC	group_idc                    K   t        j                  || j                        }|st        dd      |D cg c]!  }t        j
                  j                  |      # c}S c c}w w)Ni  zGet group ID not found)status_codedetail)r   get_competitorr   r   r	   CompetitorIntensityResponsemodel_validate)r   r3   new_get_group_competitor	get_groups       r   get_group_competitorz/CompetitorIntensityService.get_group_competitor%   s]     #9#H#HSWSZSZ#[ 'C8PQQ^vw^vQZ22AA)L^vwwws   4A$&AA$competitor_idc                 l  K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      S |j                  |j                  |_        |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   zUpdate ID not foundr   r   r    r!   zCompetitor updated successfully	image_urlr"   )r   queryr   filterr=   firstr   total_square_footageassumptionsr3   r%   r&   r'   r(   r)   r   ospathexistsremover,   refresh)r   r=   r   r   
competitorr-   r.   r/   s           r   update_competitorz,CompetitorIntensityService.update_competitor+   se    WW]]#9:AABXBfBfjwBwx~~  A
!6KLL''3.5.J.JJ+*%,%8%8J"'&-&6&6
#)22N#N#34Jj$'6""<#4#4f= (&&277>>*:Q:Q+R		*112 '1J#
#S2S[fhrhh  [A  B  	B ('s   CF4!F(6B2F4(F1-F4c                    K   t        j                  || j                        }|st        dd      S t        dd      S w)Nz-1zCompetitor ID Not Foundr   r!   zCompetitor Deleted Successfully)r   delete_competitorr   r   )r   r=   deleted_competitors      r   rM   z,CompetitorIntensityService.delete_competitorC   s?     3EEmUYU\U\]!!7PQQS2STTs   =?)__name__
__module____qualname__r   r   r   r   r	   CompetitorIntensityCreater   r2   intr<   CompetitorIntensityUpdaterK   rM   r$   r   r   r   r      s    ' )9  koosjt 
f.N.N 
]g 
(x# x }A  BF  }G B3 B@`@` Boy B0UC Ur   r   )rE   r'   typingr   fastapir   r   r   r   sqlalchemy.ormr   app.api.competitor_intensityr	   $app.models.main.competitor_intensityr
   r   app.utils.schemas_utilsr   app.dependency.authanticationr   app.locale.messagesr   r   r$   r   r   <module>r]      s2    	   9 9 " / ` 2 : (;U ;Ur   