
    h                         d dl mZ d dlmZ d dl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)INTEGERVARCHAREnum
ForeignKey)MappedSessionmapped_columnrelationship)Base)CustomModelc                   l   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d      Z
edz  ed<    edd	      Zedz  ed
<    edd      Zedz  ed<    ed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d      Zedz  ed<   y)SegmentBaseN)default
segment_idnamelocationchiefWageEarnerOccupation)r   aliaschief_wage_earner_occupationhighestEducatedMalehighest_educated_malehighestEducatedFemalehighest_educated_femaleisecSegmentISEC_Segmenttotal_populationother_detailsgroupIdgroup_id)__name__
__module____qualname__r   r   int__annotations__r   strr   r   r   r   r   r   r   r!        2/var/www/html/RetailAPI/app/models/main/segment.pyr   r      s    "40Jd
0T*D#** .HcDj./4TId/e #*e(-dBW(X3:X*/D[*\S4Z\$TGL#*G$)$$7sTz7!&t!4MC$J4 Y?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d      d      Zee   e	d	<    ed e
d       eddddddd      d      Zee   e	d<    ed e
d       eddddddd      d      Zee   e	d<    ed edddddd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$      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d0       Zeded*ed+ed,d.fd1       Zed%ed+ed,e fd2       Z!y3)4
TblSegmenttbl_segmentr   T)primary_keyautoincrementr      F)nullabler   RuralUrbanlocation_types)r   r   LabourFarmerWorkerTraderzClerical/Sales/SupervisoryzManagerial/Professionaloccupation_typesr   zNo formal educationzUp to Class 5 StandardzClass 6-9th standardzClass 10-14 standardzDegree RegularzDegree Professionaleducation_levelsr   zUpto to Class 5 Standardeducation_levels_femaler   r   r      r!   ztbl_group.group_idTblGroupsegment)back_populatesdatadbreturnc                 t     | di |j                         }|j                  |       |j                          |S )Nr(   )
model_dumpaddflush)clsr@   rA   new_datas       r*   createzTblSegment.create7   s0    +*+
x

r)   zTblSegment | Nonec                 x    |j                  |       j                  | j                  |k(        j                         S N)queryfilterr   first)rG   r   rA   s      r*   	get_by_idzTblSegment.get_by_id>   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)rL   rM   r!   allr   )rG   r!   rA   r>   s       r*   get_by_group_idzTblSegment.get_by_group_idB   sB    ((3-&&s||x'?@DDFC8Z[[r)   c                    |j                  |       j                  | j                  |k(        j                         }|sy |j	                         }|j                         D ]  \  }}|	t        |||        |j                  |       |S rK   )rL   rM   r   rN   rD   itemssetattrrefresh)rG   r   r@   rA   get_data	data_dictkeyvalues           r*   updatezTblSegment.updateI   sx    88C=''*(DEKKMOO%	#//+JC #u- , 	

8r)   c                     |j                  |       j                  | j                  |k(        j                         }|sy|D ]#  }|j	                  |       |j                          % y)NFT)rL   rM   r!   rS   deletecommit)rG   r!   rA   objr_   s        r*   r_   zTblSegment.deleteU   sU    hhsm""3<<8#;<@@BFIIcNIIK  r)   N)"r"   r#   r$   __tablename__r   r   r   r	   r%   r&   r   r   r'   r   r   r   r   r   r   r   r   r   r!   r   groupclassmethodr   r
   rI   rO   rT   r]   boolr_   r(   r)   r*   r,   r,      s   !M+L'tcghJsh%fgclUKD&+K)*d7GRb6cnstHfSkt0=&Xx85QSl  tF  	G	1 &+  *7"$<>TVln~  AV  ]o  	p	*6#;  ,9!"$>@VXn  qA  CX  _x  	y,VC[ 
 !.ngPU VL&+V$12DgX\$]fSk]"/W\"]MF3K])*gzJ^?_jopHfSkpI>E+ 7 |   J3 JG J8K J J s  L   	 	; 	G 	H[ 	 	 c w 4  r)   r,   N)fastapir   pydanticr   
sqlalchemyr   r   r   r   sqlalchemy.ormr	   r
   r   r   app.models.mainr   app.utils.schemas_utilsr   r   r,   r(   r)   r*   <module>rl      s9    !  9 9 F F   /@+ @ E Er)   