"""Query classes for participant track streams.""" from marshmallow import fields from analytics.connectors.snowflake import AbstractSnowflakeQuery from analytics.queries.schema import QueryWithPermissionsSchema class ParticipantTrackStreamsQuerySchema(QueryWithPermissionsSchema): global_participant_id = 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 ParticipantTrackStreamsAll(AbstractSnowflakeQuery): query_schema = ParticipantTrackStreamsQuerySchema filename = "participant/track_streams.sql" default_params = {"by_store": False} class ParticipantTrackStreamsStore(AbstractSnowflakeQuery): query_schema = ParticipantTrackStreamsQuerySchema filename = "participant/track_streams.sql" default_params = {"by_store": True}