"""Schemas for top accounts metrics endpoint.""" from marshmallow import fields from analytics.schemas.common import BaseSchema class TopAccountsMetricsItemSchema(BaseSchema): """Marshmallow schema for a items in a list of top metrics.""" label_id = fields.Integer() subaccount_id = fields.Integer() label_manager_name = fields.String() streams_7_days = fields.Integer() streams_growth_percentage_7_day = fields.Float( data_key="streams_growth_percentage_7_day" ) streams_28_days = fields.Integer() streams_growth_percentage_28_day = fields.Float( data_key="streams_growth_percentage_28_day" ) streams_all_time = fields.Integer() track_downloads_28_days = fields.Integer() track_downloads_growth_percentage_28_day = fields.Float( data_key="track_downloads_growth_percentage_28_day" ) album_downloads_28_days = fields.Integer() album_downloads_growth_percentage_28_day = fields.Float( data_key="album_downloads_growth_percentage_28_day" ) aggregated_downloads_7_days = fields.Integer() aggregated_downloads_growth_percentage_7_day = fields.Float( data_key="aggregated_downloads_growth_percentage_7_day" ) aggregated_downloads_all_time = fields.Integer() class TopAccountsMetricsSchema(BaseSchema): """Marshmallow schema for the list of top metrics.""" total_count = fields.Integer() labels_count = fields.Integer() subaccounts_count = fields.Integer() items = fields.Nested(TopAccountsMetricsItemSchema, many=True)