"""Schemas for top video metrics endpoint.""" from marshmallow import fields from analytics.schemas.common import BaseSchema, SourceSchema class TopVideoMetricsItemSchema(BaseSchema): """Marshmallow schema for a items in a list of top metrics.""" video_id = fields.String() channel_id = fields.String() subscriber_count = fields.Integer() total_views = fields.Integer() total_estimated_gross_revenue = fields.Float() average_view_duration_seconds = fields.Float() views_1_month_back = fields.Integer() growth_2_to_1_months_back = fields.Float() views_2_months_back = fields.Integer() growth_3_to_2_months_back = fields.Float() views_3_months_back = fields.Integer() growth_4_to_3_months_back = fields.Float() views_last_28_days = fields.Integer() views_last_7_days = fields.Integer() class TopVideoMetricsSchema(BaseSchema): """Marshmallow schema for the list of top metrics.""" total_results = fields.Integer() items = fields.Nested(nested=TopVideoMetricsItemSchema, many=True) last_available_date = fields.String() sources = fields.Nested(SourceSchema, many=True)