from apollo_utils.service.schemas.fields.datetime import DateStringField from apollo_utils.service.schemas.mixins.isrc import IsrcListRequiredMixin from apollo_utils.service.schemas.mixins.market import get_market_mixin from marshmallow import fields, validate from server.schemas.base.schemas import RequestSchema, Schema class TracksStreamsByDateShift: class Request(RequestSchema, get_market_mixin(max_len=18), IsrcListRequiredMixin): """Request schema to get tracks streams for two days.""" streams_date = fields.Date(required=True, data_key="date") date_shift = fields.Int(missing=7, validate=validate.Range(min=1, max=31)) class Response(Schema): """GTP streams output schema.""" class TracksStreamsByDateShiftItem(Schema): """GTP streams output schema for one streams and date item.""" date = DateStringField() streams = fields.Int() isrc = fields.Str() data = fields.List(fields.Nested(TracksStreamsByDateShiftItem))