from src.assets.snowflake.agg.rolling_wau.assets import rolling_wau from src.assets.snowflake.dim.assets import agg_user_daily_spine, user_session_state, agg_user_platform_daily from src.assets.snowflake.dim.sensors import user_session_state_new_data_sensor, dim_user_downstream_tasks_sensor, agg_user_platform_daily_new_data_sensor from src.assets.snowflake.fact.fact_hook_play.assets import fact_hook_play, stg_android_hook_play, stg_ios_hook_play, stg_web_hook_play from src.assets.snowflake.fact.play.assets import stg_web_play, stg_ios_play, stg_ios_legacy_play, stg_android_play, fact_play from src.assets.snowflake.fact.studio_play.assets import fact_studio_play from src.assets.snowflake.dim.hook.assets import dim_hook from src.assets.snowflake.dim.user.assets import dim_user from src.assets.snowflake.session.hook_session.assets import stg_hook_session_backend_events, stg_hook_session_segment_events, hook_session from src.assets.snowflake.recommendation.rec_run.assets import rec_run from src.assets.snowflake.recommendation.hook.rec_hook_hashtags.assets import rec_hook_hashtags from src.assets.snowflake.redis.clip.assets import self_listening_clips from src.assets.snowflake.raw_table.rds.clip import clip from src.assets.snowflake.resources import snowflake from .stripe_disputes_monitor import StripeDisputesMonitor from src.assets.snowflake.agg.agg_play_info_hourly_v0.assets import agg_play_info_hourly_v0_insert from src.assets.snowflake.agg.ml_song_summary_info_hourly.assets import ml_song_summary_info_hourly_insert from src.assets.snowflake.genre.assets import genre_data, clip_genre # Register all Snowflake assets here CUSTOM_SNOWFLAKE_OBJECTS = [ StripeDisputesMonitor(), ] SNOWFLAKE_ASSETS = [ stg_web_hook_play, stg_ios_hook_play, stg_android_hook_play, fact_hook_play, user_session_state, dim_user, dim_hook, agg_user_daily_spine, agg_user_platform_daily, rolling_wau, clip, rec_run, # Add new rec_run asset rec_hook_hashtags, # Hook hashtags extracted from captions stg_hook_session_backend_events, stg_hook_session_segment_events, hook_session, fact_studio_play, stg_web_play, stg_ios_play, stg_ios_legacy_play, stg_android_play, fact_play, self_listening_clips, agg_play_info_hourly_v0_insert, # Aggregation asset ml_song_summary_info_hourly_insert, # ML song summary aggregation genre_data, # Static genre reference table clip_genre, # Static clip-genre mapping table ] SNOWFLAKE_RESOURCES = [ snowflake, ] SNOWFLAKE_SENSORS = [ dim_user_downstream_tasks_sensor, user_session_state_new_data_sensor, agg_user_platform_daily_new_data_sensor, ] # When we export the lists of assets, jobs, and schedules, the autoloader in definitions.py will pick them up assets = [snowflake.asset for snowflake in CUSTOM_SNOWFLAKE_OBJECTS] + SNOWFLAKE_ASSETS jobs = [snowflake.job for snowflake in CUSTOM_SNOWFLAKE_OBJECTS if snowflake.job] schedules = [snowflake.schedule_def for snowflake in CUSTOM_SNOWFLAKE_OBJECTS if snowflake.schedule_def] resources = SNOWFLAKE_RESOURCES sensors = SNOWFLAKE_SENSORS __all__ = ["assets", "jobs", "schedules", "resources", "sensors"]