2022-11-19 20:43:05 +01:00
|
|
|
from marshmallow import Schema, fields, validate
|
2022-10-26 12:41:22 +02:00
|
|
|
|
|
|
|
from ..validators import validate_index
|
|
|
|
from .students import GroupSchema, StudentSchema
|
|
|
|
|
|
|
|
|
2022-11-19 20:43:05 +01:00
|
|
|
class GroupQuerySchema(Schema):
|
2022-10-26 12:41:22 +02:00
|
|
|
name = fields.Str()
|
|
|
|
page = fields.Integer()
|
|
|
|
per_page = fields.Integer()
|
|
|
|
|
|
|
|
|
2022-11-19 20:43:05 +01:00
|
|
|
class GroupsPaginationSchema(Schema):
|
2022-10-26 12:41:22 +02:00
|
|
|
groups = fields.List(fields.Nested(GroupSchema))
|
|
|
|
max_pages = fields.Integer()
|
|
|
|
|
|
|
|
|
2022-11-19 20:43:05 +01:00
|
|
|
class GroupCreateSchema(Schema):
|
2022-10-26 12:41:22 +02:00
|
|
|
name = fields.Str(validate=validate.Length(min=1, max=255), required=True)
|
|
|
|
project_supervisor_id = fields.Integer(required=True)
|
|
|
|
students = fields.List(fields.Integer(validate=validate_index, required=True))
|
|
|
|
|
|
|
|
|
2022-11-19 20:43:05 +01:00
|
|
|
class GroupEditSchema(Schema):
|
2022-10-26 12:41:22 +02:00
|
|
|
name = fields.Str(validate=validate.Length(min=1, max=255))
|
|
|
|
project_supervisor_id = fields.Integer(validate=validate_index)
|
|
|
|
students = fields.List(fields.Nested(StudentSchema), validate=validate.Length(min=1, max=255))
|
2022-11-19 20:43:05 +01:00
|
|
|
|
|
|
|
|
|
|
|
class GroupIdSchema(Schema):
|
|
|
|
group_id = fields.Integer(required=True)
|