100 lines
1.7 KiB
Python
100 lines
1.7 KiB
Python
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
|