"""Schema for video metrics endpoint.""" from marshmallow import fields from analytics.schemas.common import BaseSchema, SourceSchema class AllTimeVideoMetricsSubSchema(BaseSchema): """Marshmallow schema for all time video metrics.""" video_id = fields.String(data_key="videoId") content_type = fields.String(data_key="contentType") 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") impressions_ctr = fields.Float(data_key="impressionsCtr") estimated_partner_ad_revenue = fields.Float(data_key="estimatedPartnerAdRevenue") estimated_partner_premium_revenue = fields.Float( data_key="estimatedPartnerPremiumRevenue" ) estimated_monetized_playbacks = fields.Integer( data_key="estimatedMonetizedPlaybacks" ) cpm = fields.Float() rpm = fields.Float() ad_fill_rate = fields.Float(data_key="adFillRate") comments = fields.Integer() class AllTimeVideoMetricsSchema(BaseSchema): """Marshmallow schema for all time video metrics.""" all_time_video_metrics = fields.Nested(AllTimeVideoMetricsSubSchema) sources = fields.Nested(SourceSchema, many=True)