from marshmallow import fields, validate, Schema from ..validators import validate_datetime_greater_than_now class ExaminationScheduleSchema(Schema): title = fields.Str(validate=validate.Length(min=1, max=100), required=True) start_date = fields.DateTime(validate=validate_datetime_greater_than_now, required=True) end_date = fields.DateTime(validate=validate_datetime_greater_than_now, required=True) class ExaminationScheduleUpdateSchema(Schema): start_date_for_enrollment_students = fields.DateTime(validate=validate_datetime_greater_than_now, required=True) end_date_for_enrollment_students = fields.DateTime(validate=validate_datetime_greater_than_now, required=True) class ExaminationScheduleListItemSchema(Schema): id = fields.Integer() title = fields.Str() start_date = fields.DateTime() end_date = fields.DateTime() start_date_for_enrollment_students = fields.DateTime() end_date_for_enrollment_students = fields.DateTime() class ExaminationSchedulesPaginationSchema(Schema): examination_schedules = fields.List(fields.Nested(ExaminationScheduleListItemSchema)) max_pages = fields.Integer() class ExaminationSchedulesQuerySchema(Schema): page = fields.Integer() per_page = fields.Integer() class ProjectSupervisorStatisticsSchema(Schema): fullname = fields.Str() assigned_to_committee = fields.Integer() groups_assigned_to_his_committee = fields.Integer() class WorkloadSchema(Schema): workloads = fields.List(fields.Nested(ProjectSupervisorStatisticsSchema))