system-pri/backend/app/coordinator/schemas/enrollments.py

42 lines
1.3 KiB
Python

from marshmallow import Schema, fields, validate
from ..validators import validate_datetime_greater_than_now
class TermOfDefenceSchema(Schema):
start_date = fields.DateTime(validate=validate_datetime_greater_than_now, required=True)
end_date = fields.DateTime(validate=validate_datetime_greater_than_now, required=True)
project_supervisors = fields.List(fields.Integer(required=True), validate=validate.Length(3, 3))
class ProjectSupervisorForTermOfDefenceSchema(Schema):
id = fields.Str()
first_name = fields.Str()
last_name = fields.Str()
class TermOfDefenceItemSchema(Schema):
start_date = fields.DateTime()
end_date = fields.DateTime()
members_of_committee = fields.List(fields.Nested(ProjectSupervisorForTermOfDefenceSchema))
class TermOfDefenceListSchema(Schema):
term_of_defences = fields.List(fields.Nested(TermOfDefenceItemSchema))
class ProjectSupervisorForTemporaryAvailabilitySchema(Schema):
id = fields.Str()
first_name = fields.Str()
last_name = fields.Str()
class TemporaryAvailabilityItemSchema(Schema):
start_date = fields.DateTime()
end_date = fields.DateTime()
project_supervisor = fields.Nested(ProjectSupervisorForTemporaryAvailabilitySchema)
class TemporaryAvailabilityListSchema(Schema):
temporary_availabilities = fields.List(fields.Nested(TemporaryAvailabilityItemSchema))