o
    ȟ1i	                     @   s   d dl mZmZ d dlmZ d dlmZ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dS )    )OptionalUnion)
UploadFile)	BaseModelmodel_validator
ConfigDictField)get_db)CoreValidationError)CourseCategoryc                   @   s&   e Zd ZU eed< dZee ed< dS )CourseCategoryBaseSchematitleNdescription)__name__
__module____qualname__str__annotations__r   r    r   r   /app/schema/course_category.pyr      s   
 r   c                   @   s2   e Zd ZU eddZeed< edddd ZdS )CourseCategoryCreateNdefaulticon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Course category already exists.)	r	   queryr   wherer   
deleted_atis_countr
   selfdbr   r   r   validate_fields   s   

z$CourseCategoryCreate.validate_fields)	r   r   r   r   r   r   r   r   r&   r   r   r   r   r      s   
 r   c                   @   s:   e Zd ZU eed< eddZeed< edddd Z	dS )	CourseCategoryUpdateSchemaidNr   r   r   r   c                 C   sh   t  '}|ttj| jktjd tj| jk 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&       s   

z*CourseCategoryUpdateSchema.validate_fields)
r   r   r   intr   r   r   r   r   r&   r   r   r   r   r'      s
   
 r'   c                   @   s@   e Zd ZU eed< edef ed< eedf ed< eddZdS )CourseCategoryResponseSchemar(   Nicon_urlr   T)from_attributes)	r   r   r   r)   r   r   r   r   model_configr   r   r   r   r*   )   s
   
 r*   N)typingr   r   fastapir   pydanticr   r   r   r   core.configr	   core.security.exceptionsr
   Zmodels.course_categoryr   r   r   r'   r*   r   r   r   r   <module>   s    