o
    Uh?                     @   sj   d dl m  m  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 )	    N)Session)Messages)SegmentBase
TblSegment)CustomResponse)Listc                   @   sZ   e Zd ZdefddZde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 )SegmentServicedbc                 C   s   || _ || _d S )N)r	   token)selfr	   r
    r   2/var/www/html/RetailAPI/app/api/segment/service.py__init__	   s   
zSegmentService.__init__request_listc                    sJ   |D ]}t |}|jstdt|| j q| j  tdt	j
dS )NzName cannot be null1statusmessage)r   model_validatename
ValueErrorr   creater	   commitr   r   SEGMENT_CREAT)r   r   requestvalidated_datar   r   r   create_segment   s   

zSegmentService.create_segmentr   c                    sN   t |}|jd u rtdtjdS t|j|| j | j	  tdtj
dS N-1r   r   )r   r   
segment_idr   r   SEGMENT_NOT_FOUNDr   updater	   r   SEGMENT_UPDATE)r   r   updated_segmentr   r   r   update_segment   s   


zSegmentService.update_segmentgroup_idc                    s.   t || j}|stdtjdS tj|S )Nr   r   )	r   get_by_group_idr	   r   r   r    schemasSegmantResponser   )r   r%   segmentr   r   r   get_segment%   s
   zSegmentService.get_segmentr   c                    s0   t || j}|stdtjdS tdtjdS r   )r   deleter	   r   r   CATCHMENT_NOT_FOUNDSEGMENT_DELETED)r   r   deletedr   r   r   delete_segment+   s
   zSegmentService.delete_segmentN)__name__
__module____qualname__r   r   r   r'   SegmentCreater   SegmentUpdater$   intr*   r/   r   r   r   r   r      s    

r   )app.api.segment.schemasapir)   r'   sqlalchemy.ormr   app.locale.messagesr   app.models.main.segmentr   r   app.utils.schemas_utilsr   typingr   r   r   r   r   r   <module>   s    