"""Schema for source of streams endpoint.""" from marshmallow import fields from sound_recordings.schemas.common import ( BaseSchema, SourceSchema, StreamBreakdownItemSchema, StreamBreakdownSchema, ) class StoreItemSchema(StreamBreakdownSchema): """Schema for streams by store.""" store_id = fields.Integer(attribute="id", data_key="id") name = fields.String() class StreamsSchema(BaseSchema): """Schema for sound recording streams breakdown.""" isrc = fields.String() aggregate = fields.Nested(StreamBreakdownSchema, default={}) stores = fields.Nested(StoreItemSchema, many=True) sources = fields.Nested(SourceSchema, many=True) class StreamsAllSchema(BaseSchema): """Schema for Aggregate Streams Timeseries.""" isrc = fields.String() items = fields.Nested(StreamBreakdownItemSchema, many=True) class AggregateStreamsSchema(BaseSchema): """Schema for aggregate streams.""" streams_all_time = fields.Integer() growth_percentage_7_days = fields.Number(allow_none=True)