from apollo_utils.core.constants.dsp import DSP from apollo_utils.core.constants.market import Market from apollo_utils.service.schemas.fields.market import MarketField from apollo_utils.service.schemas.fields.playlists import PlaylistIdField from marshmallow import fields, validate from server.schemas.base.image import ImageSizeTrackAppleDefaultMixin from server.schemas.base.schemas import RequestSchema, Schema class V1PlaylistsAppleTracklistGraph: class Request(ImageSizeTrackAppleDefaultMixin, RequestSchema): playlist_id = PlaylistIdField(required=True, dsp=DSP.APPLE, validate=validate.Length(max=50)) country_code = MarketField( data_key="market", missing=Market.US, validate=validate.Length(min=2, max=10), gl=Market.US ) class Response(Schema): frontline_tracks = fields.Int(missing=None) local_tracks = fields.Int(missing=None) tracks_num = fields.Int(missing=None)