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 ImageSizeTrackSpotifyDefaultMixin from server.schemas.base.schemas import RequestSchema, Schema class TracklistGraph: class Request(ImageSizeTrackSpotifyDefaultMixin, RequestSchema): playlist_id = PlaylistIdField(required=True, dsp=DSP.SPOTIFY, validate=validate.Length(max=50)) country_code = MarketField( data_key="market", missing=Market.WORLDWIDE, validate=validate.Length(min=2, max=10), gl=Market.WORLDWIDE ) class Response(Schema): sony_tracks = fields.Int(missing=None) frontline_tracks = fields.Int(missing=None) local_tracks = fields.Int(missing=None) tracks_num = fields.Int(missing=None)