
    Wi                         d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
 d dlmZmZmZmZ d dlmZ d dlmZ  G d de      Z G d	 d
e      Zy)    )HTTPException)Field)DOUBLEINTEGERVARCHAREnum
ForeignKeyText)MappedSessionmapped_columnrelationship)Base)CustomModelc                      e Zd ZU  ed      Zedz  ed<    ed      Zedz  ed<    ed      Z	edz  ed<    ed      Z
edz  ed<    ed      Zedz  ed<    ed      Zedz  ed<    ed      Zedz  ed	<    ed      Zedz  ed
<    ed      Zedz  ed<    ed      Zedz  ed<    ed      Zedz  ed<   y)SegmentBaseN)default
segment_idnamelocationchief_wage_earner_occupationhighest_educated_malehighest_educated_femaleISEC_Segmenttotal_populationother_detailsadditional_informationgroup_id)__name__
__module____qualname__r   r   int__annotations__r   strr   r   r   r   r   r   r   r   r        >/var/www/html/retail-simulation-api/app/models/main/segment.pyr   r      s    "40Jd
0T*D#** .HcDj./4T/B #*B(-d(;3:;*/*=S4Z=$T2L#*2$)$$7sTz7!&t!4MC$J4*/*=S4Z= .HcDj.r&   r   c            	          e Zd ZU dZ ededd      Zee   e	d<    ed e
d      d      Zee   e	d<    ed	 e
d      d      Zee   e	d	<    ed
 e
d      d      Zee   e	d
<    ed e
d      d      Zee   e	d<    ed e
d      d      Zee   e	d<    eded      Zee   e	d<    eded      Zee   e	d<    eded      Zee   e	d<    ededd      Zee   e	d<    ede ed      d      Zee   e	d<    edd      Zedededd fd       Zedededdfd       Zedededd fd       Z ededededdfd       Z!ededede"fd        Z#y)!
TblSegmenttbl_segmentr   T)primary_keyautoincrementr      F)nullabler   r   r   r   r   r   r   r   N)r.   server_defaultr   ztbl_group.group_idTblGroupsegment)back_populatesdatadbreturnc                 t     | di |j                         }|j                  |       |j                          |S )Nr%   )
model_dumpaddflush)clsr3   r4   new_datas       r'   createzTblSegment.create>   s0    +*+
x

r&   zTblSegment | Nonec                 x    |j                  |       j                  | j                  |k(        j                         S N)queryfilterr   first)r:   r   r4   s      r'   	get_by_idzTblSegment.get_by_idE   s-    xx}##CNNj$@AGGIIr&   c                     |j                  |       j                  | j                  |k(        j                         }|st	        dd      |S )Ni  z Segment not found for this Group)status_codedetail)r?   r@   r   allr   )r:   r   r4   r1   s       r'   get_by_group_idzTblSegment.get_by_group_idI   sB    ((3-&&s||x'?@DDFC8Z[[r&   c                 4   |j                  |       j                  | j                  |k(        j                         }|sy |j	                         }|j                         D ]  \  }}|	t        |||        |j                          |j                  |       |S r>   )	r?   r@   r   rA   r7   itemssetattrcommitrefresh)r:   r   r3   r4   get_data	data_dictkeyvalues           r'   updatezTblSegment.updateP   s    88C=''*(DEKKMOO%	#//+JC #u- , 			


8r&   c                     |j                  |       j                  | j                  |k(        j                         }|sy|j	                  |       |j                          y)NFT)r?   r@   r   rA   deleterK   )r:   r   r4   objs       r'   rS   zTblSegment.delete]   sI    hhsm""3>>Z#?@FFH
		#
		r&   )$r   r    r!   __tablename__r   r   r   r   r"   r#   r   r   r$   r   r   r   r   r   r   r   r
   r   r   r	   r   r   groupclassmethodr   r   r<   rB   rG   rQ   boolrS   r%   r&   r'   r)   r)   !   s2   !M+L'tcghJsh%fgclUKD&+K)*gclUSHfSkS0=&1 &+ 
 *7*6#; 
 ,9!,VC[ 
 !.ngPU VL&+V$12DfW[$\fSk\"/u"UMF3KU+89QSWbfw{+|VC[|)*gzJ^?_jopHfSkpI>E+ 7 |   J3 JG J8K J J s  L   
 
; 
G 
H[ 
 
   T  r&   r)   N)fastapir   pydanticr   
sqlalchemyr   r   r   r   r	   r
   sqlalchemy.ormr   r   r   r   app.models.mainr   app.utils.schemas_utilsr   r   r)   r%   r&   r'   <module>r_      s7    !  G G F F   //+ /2C Cr&   