import dagster as dg
from dagster import EnvVar

from src.utils.snowflake.constants import Group

# Static reference tables - no partitions, no materialization needed
# These tables are populated externally and serve as reference data

genre_data = dg.AssetSpec(
    key="genre_data",
    description="Genre reference data table containing all possible music genre labels. Static table populated externally.",
    group_name=Group.RECOMMENDATION.value,
    metadata={
        "database": EnvVar("SNOWFLAKE_DB").get_value(),
        "schema": "prod",
        "table_name": "GENRE_DATA",
        "static": True,  # Indicates this is a static reference table
    }
)

clip_genre = dg.AssetSpec(
    key="clip_genre",
    description="Junction table linking clips to their predicted genres. Contains comma-separated genre predictions (top 3) from the genre classification model. Static table populated externally.",
    group_name=Group.RECOMMENDATION.value,
    metadata={
        "database": EnvVar("SNOWFLAKE_DB").get_value(),
        "schema": "prod",
        "table_name": "CLIP_GENRE",
        "static": True,  # Indicates this is a static reference table
    }
)

