"""Query classes for sound recording streams.""" from marshmallow import fields from analytics.connectors.snowflake import AbstractSnowflakeQuery from analytics.queries.schema import QueryWithPermissionsSchema class SoundRecordingStreamsQuerySchema(QueryWithPermissionsSchema): isrc = fields.String(required=True) store_ids = fields.List(fields.Int, required=True) distributors = fields.List(fields.String, required=True) start_date = fields.Date(allow_none=True, load_default=None) end_date = fields.Date(required=True) country_ids = fields.List(fields.String, load_default=[]) all_time = fields.Boolean(load_default=False) by_store = fields.Boolean(load_default=False) class StreamsAll(AbstractSnowflakeQuery): query_schema = SoundRecordingStreamsQuerySchema filename = "sound_recording/streams.sql" default_params = {"by_store": False} class StreamsByStore(AbstractSnowflakeQuery): query_schema = SoundRecordingStreamsQuerySchema filename = "sound_recording/streams.sql" default_params = {"by_store": True}