from marshmallow import Schema, fields, validate

from .students import GroupSchema


class GroupQuerySchema(Schema):
    name = fields.Str()
    page = fields.Integer()
    per_page = fields.Integer()


class GroupsPaginationSchema(Schema):
    groups = fields.List(fields.Nested(GroupSchema))
    max_pages = fields.Integer()


class GroupCreateSchema(Schema):
    name = fields.Str(validate=validate.Length(min=1, max=255), required=True)
    project_supervisor_id = fields.Integer(required=True)
    students = fields.List(fields.Integer(required=True))


class GroupEditSchema(Schema):
    name = fields.Str(validate=validate.Length(min=1, max=255))
    project_supervisor_id = fields.Integer()
    students = fields.List(fields.Integer())


class GroupIdSchema(Schema):
    group_id = fields.Integer(required=True)