"""Schema for source of streams endpoint.""" from marshmallow import fields from sound_recordings.schemas.common import BaseSchema, SourceSchema class StreamsBreakdownItemSchema(BaseSchema): """Marshmallow schema for SST breakdown items section.""" growth_percentage = fields.Number(data_key="growth_percentage") total = fields.Integer() value = fields.Number() class SourceOfStreamsBreakdownSchema(BaseSchema): """Marshmallow for Source of Streams breakdown.""" active = fields.Nested(StreamsBreakdownItemSchema) passive = fields.Nested(StreamsBreakdownItemSchema) collection = fields.Nested(StreamsBreakdownItemSchema) unknown = fields.Nested(StreamsBreakdownItemSchema) sources = fields.Nested(SourceSchema, many=True) class StreamsBySubscriptionSchema(BaseSchema): """Marshmallow for Streams by Subscription Type breakdown.""" subscription = fields.Nested(StreamsBreakdownItemSchema) ad_supported = fields.Nested(StreamsBreakdownItemSchema) mid_tier = fields.Nested(StreamsBreakdownItemSchema) sources = fields.Nested(SourceSchema, many=True) class StreamsBreakdownSchema(BaseSchema): """Marshmallow for Streams breakdown.""" isrc = fields.String() source_of_streams = fields.Nested(SourceOfStreamsBreakdownSchema, default={}) streams_by_subscription = fields.Nested(StreamsBySubscriptionSchema, default={})