"""Schema for video metrics endpoint.""" from marshmallow import fields from analytics.schemas.common import BaseSchema, SourceSchema class TopVideoTrafficSourcesItemSchema(BaseSchema): """Marshmallow schema for traffic sources.""" source = fields.String() views = fields.Integer() premium_views = fields.Integer(data_key="premiumViews") average_view_duration_seconds = fields.Float(data_key="averageViewDurationSeconds") average_view_duration_percentage = fields.Float( data_key="averageViewDurationPercentage" ) watch_time_minutes = fields.Float(data_key="watchTimeMinutes") premium_watch_time_minutes = fields.Float(data_key="premiumWatchTimeMinutes") class TopVideoTrafficSourcesSchema(BaseSchema): """Marshmallow schema for video traffic sources.""" video_id = fields.String() top_video_traffic_sources = fields.Nested( nested=TopVideoTrafficSourcesItemSchema, many=True ) sources = fields.Nested(SourceSchema, many=True)