o
    ȟ1i                     @   s   d dl mZmZ d dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ G dd deZG dd	 d	eZG d
d deZG dd deZG dd deZdS )    )ListOptional)	BaseModel
ConfigDictmodel_validator)get_db)Role)GenericResponsec                   @   s4   e Zd ZU eed< dZeed< edddd ZdS )	RoleCreateSchemalabelFhas_attendance_managementaftermodec                 C   s^   t  "}|ttj| jktjd  dkrtdW d    | S 1 s(w   Y  | S Nr   zRole already exists)	r   queryr   filterr   
deleted_atis_count
ValueErrorselfdb r   /app/schema/role.pyvalidate   s   *
zRoleCreateSchema.validateN)	__name__
__module____qualname__str__annotations__r   boolr   r   r   r   r   r   r
   
   s
   
 r
   c                   @   sJ   e Zd ZU eed< eed< dZee ed< e	ddZ
eddd	d
 ZdS )RoleInstanceSchemaidr   Fr   T)from_attributesr   r   c                 C   s   | j d u rd| _ | S )NF)r   )r   r   r   r   r      s   
zRoleInstanceSchema.validateN)r   r   r   intr!   r    r   r   r"   r   model_configr   r   r   r   r   r   r#      s   
 
r#   c                   @   s   e Zd ZU ee ed< dS )RoleListResponseSchemadataN)r   r   r   r   r#   r!   r   r   r   r   r(   #   s   
 r(   c                   @   s   e Zd ZU eed< dS )RoleResponseSchemar)   N)r   r   r   r#   r!   r   r   r   r   r*   '   s   
 r*   c                   @   s<   e Zd ZU eed< eed< dZeed< edddd Z	d	S )
RoleUpdateRequestr$   r   Fr   r   r   c                 C   sh   t  '}|ttj| jktj| jktjd  dkr"t	dW d    | S 1 s-w   Y  | S r   )
r   r   r   r   r   r$   r   r   r   r   r   r   r   r   r   0   s   4
zRoleUpdateRequest.validateN)
r   r   r   r&   r!   r    r   r"   r   r   r   r   r   r   r+   +   s   
 r+   N)typingr   r   pydanticr   r   r   core.configr   modelsr   schemar	   r
   r#   r(   r*   r+   r   r   r   r   <module>   s    