o
    ȟ1i                     @   st   d dl mZmZmZ d dlmZ d dlmZ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dS )    )	BaseModel
ConfigDictmodel_validator)get_db)CourseAllocationCoursec                   @   s&   e Zd ZU eed< eed< eed< dS )CourseAllocationBase	course_idstaff_idrole_idN__name__
__module____qualname__int__annotations__ r   r    /app/schema/course_allocation.pyr      s   
 r   c                   @   s   e Zd Zedddd ZdS )CourseAllocationCreateSchemaafter)modec                 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 )Nr   z'Teacher already assigned to this course)
r   queryr   filterr
   r	   
deleted_atis_count
ValueError)selfdbr   r   r   validate   s   


z%CourseAllocationCreateSchema.validateN)r   r   r   r   r   r   r   r   r   r      s    r   c                   @   s8   e Zd ZU eed< eed< eed< eed< eddZdS )CourseAllocationResponseid
staff_name
staff_rolecourse_nameT)from_attributesN)r   r   r   r   r   strr   model_configr   r   r   r   r       s   
 r    c                   @   s   e Zd ZU eed< dS )CourseAllocationUpdateSchemar!   Nr   r   r   r   r   r(   "   s   
 r(   N)pydanticr   r   r   core.configr   modelsr   r   r   r   r    r(   r   r   r   r   <module>   s    