from marshmallow import fields, Schema class ProjectSupervisorSchema(Schema): first_name = fields.Str() last_name = fields.Str() email = fields.Str() available_groups = fields.Integer() class ProjectSupervisorPaginationSchema(Schema): project_supervisors = fields.List(fields.Nested(ProjectSupervisorSchema)) max_pages = fields.Integer() class ProjectSupervisorQuerySchema(Schema): page = fields.Integer() per_page = fields.Integer() class TemporaryStudentSchema(Schema): student_index = fields.Integer(required=True) class MessageSchema(Schema): message = fields.Str() class ExaminationScheduleSchema(Schema): id = fields.Integer() title = fields.Str() start_date = fields.DateTime() end_date = fields.DateTime() class ExaminationScheduleListSchema(Schema): examination_schedules = fields.List(fields.Nested(ExaminationScheduleSchema)) class ProjectSupervisorCommitteeSchema(Schema): id = fields.Integer() first_name = fields.Str() last_name = fields.Str() class TermOfDefenceStudentItemSchema(Schema): id = fields.Integer() start_date = fields.DateTime() end_date = fields.DateTime() members_of_committee = fields.List(fields.Nested(ProjectSupervisorCommitteeSchema)) class TermOfDefenceStudentListSchema(Schema): term_of_defences = fields.List(fields.Nested(TermOfDefenceStudentItemSchema)) class YearGroupStudentSchema(Schema): id = fields.Integer() name = fields.Str() mode = fields.Str() class YearGroupStudentPaginationSchema(Schema): year_groups = fields.List(fields.Nested(YearGroupStudentSchema)) max_pages = fields.Integer() class YearGroupQueryStudentSchema(Schema): index = fields.Integer(required=True) # it will be removed page = fields.Integer() per_page = fields.Integer()