from schemas.base import BaseSchema, OkMessageSchema from schemas.user import UserSchema # region Entities class DepartmentSectionBaseSchema(BaseSchema): name: str department_id: int class DepartmentSectionSchema(DepartmentSectionBaseSchema): id: int users: list[UserSchema] = [] class DepartmentBaseSchema(BaseSchema): name: str class DepartmentSchema(DepartmentBaseSchema): id: int sections: list[DepartmentSectionSchema] = [] # endregion # region Requests class CreateDepartmentRequest(BaseSchema): department: DepartmentBaseSchema class UpdateDepartmentRequest(BaseSchema): department: DepartmentSchema class CreateDepartmentSectionRequest(BaseSchema): section: DepartmentSectionBaseSchema class UpdateDepartmentSectionRequest(BaseSchema): section: DepartmentSectionSchema class AddUserRequest(BaseSchema): user_id: int section_id: int class DeleteUserRequest(BaseSchema): user_id: int section_id: int # endregion # region Responses class GetDepartmentsResponse(BaseSchema): departments: list[DepartmentSchema] class CreateDepartmentResponse(OkMessageSchema): pass class UpdateDepartmentResponse(OkMessageSchema): pass class DeleteDepartmentResponse(OkMessageSchema): pass class CreateDepartmentSectionResponse(OkMessageSchema): pass class UpdateDepartmentSectionResponse(OkMessageSchema): pass class DeleteDepartmentSectionResponse(OkMessageSchema): pass class GetAvailableUsersForDepartmentSectionResponse(BaseSchema): users: list[UserSchema] class AddUserResponse(OkMessageSchema): pass class DeleteUserResponse(OkMessageSchema): pass # endregion