o
    Uh                     @   s   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZmZmZmZ G dd	 d	eZG d
d deZG dd deZdS )    )Literal)HTTPException)Field)INTEGERVARCHAREnum
ForeignKeytext)Base)CustomModel)MappedSessionmapped_columnrelationshipc                   @   s   e Zd ZU eddZedB ed< eddZedB ed< eddZ	edB ed< eddZ
edB ed< eddZedB ed< eddZed ed	< eddZedB ed
< dS )StudentBaseNdefault
student_id
first_name	last_namestudent_emailpasswordstudentrole
group_code)__name__
__module____qualname__r   r   int__annotations__r   strr   r   r   r   r   r    r!   r!   2/var/www/html/RetailAPI/app/models/main/student.pyr   	   s   
 r   c                   @   s:   e Zd ZU eddZedB ed< eddZedB ed< dS )StudentFilterNr   r   r   )	r   r   r   r   r   r   r   r   r    r!   r!   r!   r"   r#      s   
 r#   c                	   @   s  e Zd ZU dZ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	d	< ed
e
d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Zee e	d< ededddeddZee e	d< 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d Zedededd fd!d"Zededededd fd#d$Zed%ee B deded&B fd'd(Z!d&S ))
TblStudenttbl_studentr   T)primary_keyautoincrementr      )nullabler   r   r   Fr   2   r   )r)   r   r   d   ztbl_group.group_codelogin_status01)r)   server_defaultTblGroupstudents)back_populatesdatadbreturnc                 C   s,   |  }| di |}|| |  |S )Nr!   )
model_dumpaddflush)clsr3   r4   	data_dictnew_datar!   r!   r"   create%   s
   
zTblStudent.createc                 C   .   | | | j|k }|stddd|S )N  zUser not foundstatus_codedetail)queryfilterr   firstr   )r9   r   r4   get_datar!   r!   r"   get_by_student_email-      zTblStudent.get_by_student_emailc                 C   r=   )Nr>   zStudent not foundr?   )rB   rC   r   rD   r   )r9   r   r4   rE   r!   r!   r"   	get_by_id4   rG   zTblStudent.get_by_idc                 C   sn   | | | j|k }|stddd| }| D ]\}}|d ur+t||| q|  |	| |S )Nr>   zStore format not foundr?   )
rB   rC   r   rD   r   r6   itemssetattrcommitrefresh)r9   r   r3   r4   rE   r:   keyvaluer!   r!   r"   update;   s   
zTblStudent.updaterequestNc                 C   sN   t |tr|}n|jdd}|| jdi | }|sd S tdi |jS )NT)exclude_noner!   )
isinstancedictr6   rB   	filter_byrD   r   __dict__)r9   rP   r4   filter_dataget_user_datar!   r!   r"   get_by_user_filterH   s   
zTblStudent.get_by_user_filter)"r   r   r   __tablename__r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r	   r,   r   groupclassmethodr   r   r<   rF   rH   rO   rS   r#   rX   r!   r!   r!   r"   r$      s*   
  $&$r$   N)typingr   fastapir   pydanticr   
sqlalchemyr   r   r   r   r	   app.models.mainr
   app.utils.schemas_utilsr   sqlalchemy.ormr   r   r   r   r   r#   r$   r!   r!   r!   r"   <module>   s    
