o
    Uh                     @   s   d dl mZmZ d dlm  m  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mZ d d	lmZ d d
lmZ G dd dZdS )    )descselectN)Session)JWTPayloadSchema)Messages)TblGroup)TblMainData)StoreFormatBaseTblStoreFormat)CustomResponse)StoreFormateResc                   @   sj   e Zd ZdedefddZdejfddZdej	fdd	Z
dejfd
dZdefddZdefddZdS )StoreFormateServicedbtokenc                 C   s   || _ || _d S N)r   r   )selfr   r    r   8/var/www/html/RetailAPI/app/api/store_formate/service.py__init__   s   
zStoreFormateService.__init__requestc                    s2   t |}t|| j | j  tdtjdS )N1statusmessage)	r	   model_validater
   creater   commitr   r   STOREFORMATE_CREAT)r   r   created_userr   r   r   create_store_formate   s
   

z(StoreFormateService.create_store_formatec                 C   s  | j tttj|jk }|stdddS | j tttj	|j
ktj	|jkB ttjd}| }|sCtdddS |jpGd|jpKd|jpOdd}|jpVd|jpZd|jp^dd}|jped|jpid|jpmdd}|j}||vr}tdddS || }	|j}
|
|vrtdd	dS ||
 }|j}||vrtdd
dS || }t|}t|	|_t||_t||_tdi |  }| j !| | j "  | j #| tdt$j%dS )N0zGroup not foundr      z,Main data not found for the group's categoryr   )LowMediumHighz6Invalid merchandise value (Low, Medium, High required)z=Invalid service parameters value (Low, Medium, High required)z>Invalid technology adoption value (Low, Medium, High required)r   r   )&r   executer   r   wheregroup_idscalar_one_or_noner   r   format_typecategory_assignedcategoryorder_byr   data_idlimitno_of_cats_lno_of_cats_mno_of_cats_h
services_l
services_m
services_h
tech_inv_l
tech_inv_m
tech_inv_hmerchandiseservice_parameterstechnology_adoptionr   r   strr
   
model_dumpaddr   refreshr   r   )r   r   groupresult	main_datamerchandise_mapservice_parameters_maptechnology_adoption_mapmerchandise_textmerchandise_valueservice_textservice_value	tech_text
tech_value	new_storenew_store_dbr   r   r   create_store_format3   sj   







z(StoreFormateService.create_store_format3c                    sJ   |j d u rtdtjdS t|j || j}tj	|}tdd|
 dS )N-1r   r   z!Store format updated successfully)r   r   data)store_idr   r   STUDENT_ID_REQUIEDr
   updater   schemasStoreFormateResponser   r<   )r   r   updated_dataresponse_datar   r   r   update_store_formateY   s   
z(StoreFormateService.update_store_formaterP   c                    s   t || j}tj|S r   )r
   	get_by_idr   rS   rT   r   )r   rP   store_formatr   r   r   get_store_formate`   s   z%StoreFormateService.get_store_formatec                    s,   t || j}|stdddS tdddS )NrN   zStore Formate not foundr   r   z"Store Formate deleted successfully)r
   deleter   r   )r   rP   deletedr   r   r   delete_store_formated   s
   z(StoreFormateService.delete_store_formateN)__name__
__module____qualname__r   r   r   rS   StoreFormateCreater   StoreFormateCreate11rM   StoreFormateUpdaterW   intrZ   r]   r   r   r   r   r      s    Br   )
sqlalchemyr   r   app.api.store_formate.schemasapistore_formaterS   sqlalchemy.ormr   app.dependency.authanticationr   app.locale.messagesr   app.models.main.groupr   app.models.main.main_datar   app.models.main.store_formater	   r
   app.utils.schemas_utilsr   r   r   r   r   r   r   <module>   s    