from apollo_utils.service.schemas.base import RequestSchema from apollo_utils.service.schemas.fields.list import SplitUniqueListField from marshmallow import Schema, fields, validate class DelphiPlaylistsFollowers: class DelphiRequest(RequestSchema): start_date = fields.Date(format="iso", required=True) end_date = fields.Date(format="iso", required=True) playlist_id = SplitUniqueListField(fields.String(required=True), validate=validate.Length(min=1), required=True) class Request(DelphiRequest): fill_skipped = fields.Boolean(missing=True) class Response(Schema): class ResponseItem(Schema): start_date = fields.Date() end_date = fields.Date() playlist_id = fields.Str() followers = fields.List(fields.Int()) items = fields.List(fields.Nested(ResponseItem())) count = fields.Int()