from marshmallow import fields from analytics.connectors.snowflake import AbstractSnowflakeQuery from analytics.queries.schema import QueryWithPermissionsSchema class AggregatedStreamsQuerySchema(QueryWithPermissionsSchema): countries = fields.List(fields.String) days_back = fields.Integer(required=True) dimension = fields.String(required=True) top_size = fields.Integer(required=True) order_by = fields.String(required=True) max_available_date = fields.Date() is_feed_data_available = fields.Boolean(required=False, allow_none=True) streams_sos_columns = fields.List(fields.String) store_ids = fields.List(fields.Int) class SoundRecordingAggregatedStreamsQuerySchema(AggregatedStreamsQuerySchema): isrc = fields.String(required=True) class ProductAggregatedStreamsQuerySchema(AggregatedStreamsQuerySchema): product_id = fields.String(required=True) class GlobalParticipantAggregatedStreamsQuerySchema(AggregatedStreamsQuerySchema): global_participant_id = fields.String(required=True) class SoundRecordingAggregatedStreamsByCountryOrStore(AbstractSnowflakeQuery): query_schema = SoundRecordingAggregatedStreamsQuerySchema filename = "streams/aggregated_streams.sql" class SoundRecordingAggregatedStreamsBySOS(AbstractSnowflakeQuery): query_schema = SoundRecordingAggregatedStreamsQuerySchema filename = "streams/aggregated_streams_by_sos.sql" class SoundRecordingAggregatedStreamsBySOSV2(AbstractSnowflakeQuery): query_schema = SoundRecordingAggregatedStreamsQuerySchema filename = "streams/aggregated_streams_by_sos_v2.sql" class ProductAggregatedStreamsByCountryOrStore(AbstractSnowflakeQuery): query_schema = ProductAggregatedStreamsQuerySchema filename = "streams/aggregated_streams.sql" class ProductAggregatedStreamsBySOS(AbstractSnowflakeQuery): query_schema = ProductAggregatedStreamsQuerySchema filename = "streams/aggregated_streams_by_sos.sql" class GlobalParticipantAggregatedStreamsByCountryOrStore(AbstractSnowflakeQuery): query_schema = GlobalParticipantAggregatedStreamsQuerySchema filename = "streams/aggregated_streams.sql" class GlobalParticipantAggregatedStreamsBySOS(AbstractSnowflakeQuery): query_schema = GlobalParticipantAggregatedStreamsQuerySchema filename = "streams/aggregated_streams_by_sos.sql"