"""Schema for source of streams endpoint.""" from marshmallow import fields from analytics.schemas.common import BaseSchema, SourceSchema class StreamsBreakdownItemSchema(BaseSchema): """Marshmallow schema for SST breakdown items section.""" growth_percentage = fields.Float(data_key="growth_percentage") total = fields.Integer() value = fields.Float() 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, dump_default={}) streams_by_subscription = fields.Nested( StreamsBySubscriptionSchema, dump_default={} )