"""Query classes for the /ugc-video-metrics endpoint.""" from marshmallow import fields from analytics.connectors.snowflake import AbstractSnowflakeQuery from analytics.queries.schema import QueryWithPermissionsSchema class UgcVideoMetricsQuerySchema(QueryWithPermissionsSchema): distributors = fields.List(fields.String, required=True) country_ids = fields.List(fields.String, load_default=[]) track_ids = fields.List(fields.Int, load_default=[]) asset_ids = fields.List(fields.String, load_default=[]) video_ids = fields.List(fields.String, load_default=[]) track_isrcs = fields.List(fields.String, load_default=[]) claim_types = fields.List(fields.String, load_default=[]) claim_statuses = fields.List(fields.String, load_default=[]) claim_statuses_blocked = fields.Boolean(load_default=False) order_by = fields.String(required=True) order_dir = fields.String(required=True) limit = fields.Int(required=True) offset = fields.Int(required=True) class UgcVideoMetricsCountQuerySchema(QueryWithPermissionsSchema): distributors = fields.List(fields.String, required=True) country_ids = fields.List(fields.String, load_default=[]) track_ids = fields.List(fields.Int, load_default=[]) asset_ids = fields.List(fields.String, load_default=[]) video_ids = fields.List(fields.String, load_default=[]) track_isrcs = fields.List(fields.String, load_default=[]) claim_types = fields.List(fields.String, load_default=[]) class UgcVideoMetrics(AbstractSnowflakeQuery): query_schema = UgcVideoMetricsQuerySchema filename = "ugc_video_metrics/metrics.sql" class UgcVideoMetricsCount(AbstractSnowflakeQuery): query_schema = UgcVideoMetricsCountQuerySchema filename = "ugc_video_metrics/count.sql"