from marshmallow import Schema, fields from marshmallow.validate import OneOf, Regexp class GlobalSoundRecordingsForChartsDate: """Response schema for getting /charts/gsrs-for-charts-date/ API""" class Request(Schema): class Filter(Schema): brand_uuid_in = fields.List(fields.String(validate=Regexp(r'^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|👾$')), required=False) chart_ids = fields.List(fields.UUID(required=True)) date = fields.Date(required=True) filter = fields.Nested(Filter, required=False, load_default={}) order_by = fields.String(required=False, validate=OneOf(('FEATURING', 'MIN_POSITION')), load_default='FEATURING') order_dir = fields.String(required=False, validate=OneOf(('ASC', 'DESC')), load_default='ASC') class Response(Schema): globalSoundRecordingIsrcs = fields.List(fields.String)