o
    Uh                     @   s   d dl mZ d dlmZmZmZ d dl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 deZG d	d
 d
eZdS )    )Optional)	BaseModelEmailStrField)INTEGERVARCHAR
ForeignKey)MappedSessionmapped_columnrelationship)Base)
TblStudentc                   @   s   e Zd ZU eddZee ed< eddZe	dB ed< eddZ
ee	 ed< eddZee ed< eddZee	 ed< eddZee ed	< eddZee	 ed
< eddZee	 ed< dS )	GroupBaseN)defaultgroup_idsimulation_code
group_namegroup_emailcategory_assignedr   number_of_memberscategory
group_code)__name__
__module____qualname__r   r   r   int__annotations__r   strr   r   r   r   r   r   r    r   r   0/var/www/html/RetailAPI/app/models/main/group.pyr      s   
 r   c                	   @   sx  e Zd ZU dZededddZee e	d< ee
dedddZee e	d	< ed
e
dddZee e	d
< ede
dddZee e	d< ede
dddZeee  e	d< ededddZee e	d< ede
dddZeee  e	d< ede
ddddZee e	d< ede
dddZeee  e	d< edddZedddZedddZedddZedddZedddZedddZedddZed ddZed!ddZ ed"ddZ!ed#ddZ"ed$ddZ#ed%ddZ$ed&ddZ%ed'ddZ&ed(ddZ'e(d)e)d*e*d+d fd,d-Z+e(ded*e*d+d.fd/d0Z,e(ded)e)d*e*d+d.fd1d2Z-e.ded*e*fd3d4Z/e.ded*e*fd5d6Z0d7S )8TblGroup	tbl_groupr   T)primary_keyautoincrementd   ztbl_simulation.simulation_codeF)nullabler   r      r   r   r   r   )r&   r   r   r   )r&   uniquesample_excel_oneTblSimulationgroups)back_populatesr   groupTblBrand
TblSegmentTblStoreFormatTblCustomerLocationTblCatchmentPotentialTblCategoryTblNetworkPlanningTblCivilTblDisplayRackingUnitTblCarpentryFurnitureTblCommercialEquipmentTblPlumbingTblTradingMonthTblPreOperatingExpenseTblCompetitorAnalysisdatadbreturnc                 C   s,   |  }| di |}|| |  |S )Nr   )
model_dumpaddflush)clsr=   r>   	data_dictnew_datar   r   r    create2   s
   
zTblGroup.createzTblGroup | Nonec                 C   s   | | | j|k S N)queryfilterr   first)rC   r   r>   r   r   r    	get_group:   s   zTblGroup.get_groupc                 C   sf   | | | j|k }|sd S | }| D ]\}}|d ur't||| q|  || |S rG   )	rH   rI   r   rJ   r@   itemssetattrcommitrefresh)rC   r   r=   r>   get_datarD   keyvaluer   r   r    update>   s   
zTblGroup.updatec                 C   s    | tjtjtj| k S rG   )rH   r!   r   r   rI   r   rJ   r   r>   r   r   r    get_group_categoryK   s   zTblGroup.get_group_categoryc                 C   s   | ttj| k S )gdhsas)rH   r   rI   r   allrT   r   r   r    get_students_by_group_idS   s   z!TblGroup.get_students_by_group_idN)1r   r   r   __tablename__r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   r   
simulationstudentsbrandssegmentstoreformatecustomerlocationcatchmentPotential
categoriesnetwork_planningcivilsdisplay_racking_unitsfurniture_estimatescommercial_equipmentsplumbingtrading_monthpre_operating_expensecompetitor_analysisclassmethodr   r
   rF   rK   rS   staticmethodrU   rX   r   r   r   r    r!      sL   
 """ "r!   N)typingr   pydanticr   r   r   
sqlalchemyr   r   r   sqlalchemy.ormr	   r
   r   r   app.models.mainr   app.models.main.studentr   r   r!   r   r   r   r    <module>   s    