
    {%i                     p    d dl mc mc 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      Zy)	    N)Session)Messages)SegmentBase
TblSegment)CustomResponse)Listc                       e Zd ZdefdZdeej                     fdZdeej                     fdZ
defdZdefd	Zd
efdZy)SegmentServicedbc                      || _         || _        y )N)r   token)selfr   r   s      >/var/www/html/retail-simulation-api/app/api/segment/service.py__init__zSegmentService.__init__	   s    
    request_listc                   K   |D ]N  }t        j                  |      }|j                  st        d      t	        j
                  || j                         P | j                  j                          t        dt        j                        S w)NzName cannot be null1statusmessage)r   model_validatename
ValueErrorr   creater   commitr   r   SEGMENT_CREAT)r   r   requestvalidated_datas       r   create_segmentzSegmentService.create_segment   sl     #G(77@N!&& !677ndgg6	 $
 	S(2H2HIIs   B	Br   c                 p  K   |D ]y  }t        j                  |j                               }|j                  t	        dt
        j                        c S t        j                  |j                  || j                         { | j                  j                          t	        dt
        j                        S wN-1r   r   )r   r   
model_dump
segment_idr   r   SEGMENT_NOT_FOUNDr   updater   r   SEGMENT_UPDATE)r   r   requpdated_segments       r   update_segmentzSegmentService.update_segment   s     C)889IJO))1%T8;U;UVVo88$''R	 
 	S(2I2IJJs   B4B6group_idc                    K   t        j                  || j                        }|st        dt        j
                        S |D cg c]!  }t        j                  j                  |      # c}S c c}w wNr#   r   )	r   get_by_group_idr   r   r   r&   schemasSegmantResponser   )r   r,   segment	group_gets       r   get_segmentzSegmentService.get_segment    s]     ,,Xtww?!x7Q7QRRSZ[SZi''66yASZ[[[s   AA2&A-*A2c                 B  K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dt        j                        S |D cg c]!  }t        j                  j                  |      # c}S c c}w wr.   )r   queryr   filterr,   allr   r   r&   r0   OneFieldr   )r   r,   get_datagets       r   get_one_filedzSegmentService.get_one_filed&   sv     77==,33J4G4G84STXXZ!x7Q7QRR@HI  //4IIIs   A/B1&BBr%   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr"   )r   deleter   r   r   CATCHMENT_NOT_FOUNDSEGMENT_DELETED)r   r%   deleteds      r   delete_segmentzSegmentService.delete_segment,   sE     ##J8!x7S7STTS(2J2JKKs   AAN)__name__
__module____qualname__r   r   r   r0   SegmentCreater    SegmentUpdater+   intr4   r<   rB    r   r   r
   r
      sj    7 Jg6K6K1L JKD1F1F,G K\# \JC JLs Lr   r
   )app.api.segment.schemasapir2   r0   sqlalchemy.ormr   app.locale.messagesr   app.models.main.segmentr   r   app.utils.schemas_utilsr   typingr   r
   rI   r   r   <module>rQ      s&    ) ) " ( ; 2 (L (Lr   