from apollo_utils.service.schemas.base import RequestSchema from apollo_utils.service.schemas.fields.list import SplitUniqueListField from marshmallow import Schema, fields, validate class PlaylistsData: class Request(RequestSchema): playlist_id_list = SplitUniqueListField( fields.String(required=True), data_key="id", required=True, validate=validate.Length(min=1) ) class Response(Schema): class PlaylistItem(Schema): class Owner(Schema): account_name = fields.String() account_id = fields.String() category_id = fields.Integer() category_name = fields.String() country_code = fields.String() playlist_id = fields.String() name = fields.String() link = fields.String() image_url = fields.String() country_code = fields.String() owner = fields.Nested(Owner) is_personalized = fields.Boolean() playlists = fields.List(fields.Nested(PlaylistItem))