from apollo_utils.service.schemas.base import RequestSchema from apollo_utils.service.schemas.fields.list import SplitUniqueListField from apollo_utils.service.schemas.mixins.isrc import get_isrc_list_mixin from marshmallow import fields, validate from server.constants import dsp from server.constants.sorting import SortOrder from server.schemas.delphi.mixins.list import ListParamsMixin from server.schemas.delphi.mixins.skippers import SkipEmptyDataMixin class DelphiStreamDatesParams(SkipEmptyDataMixin, ListParamsMixin, get_isrc_list_mixin(), RequestSchema): dsp_list = SplitUniqueListField( fields.String(required=True, validate=validate.OneOf(dsp.ALL_VENDORS)), required=False, validate=validate.Length(max=len(dsp.ALL_VENDORS)), data_key="dsp", ) offset = fields.Integer(required=False) limit = fields.Integer(required=False) sort_by = fields.String(required=False) sort_order = fields.String(required=False, validate=validate.OneOf(SortOrder.ALL_FIELDS))