"""
Constants for ML predictions

IMPORTANT: These constants must be kept in sync with backend/core/constants.py
since the backend and ML service are separate microservices that need to agree
on classification categories.

If you modify these constants, also update backend/core/constants.py
"""

# Niche Classes
NICHE_CLASSES = [
    "Fashion",
    "Fitness",
    "Food",
    "Travel",
    "Tech",
    "Beauty",
    "Lifestyle",
    "Gaming",
    "Sports",
    "Music",
    "Art",
    "Education",
    "Business",
    "Health",
    "Parenting",
    "Photography",
    "Comedy",
    "Other"
]

# Popularity Classes (based on follower count)
POPULARITY_CLASSES = [
    "Nano",      # <10K followers
    "Micro",     # 10K-100K
    "Mid",       # 100K-500K
    "Macro",     # 500K-1M
    "Mega"       # >1M
]

# Popularity Tier Benchmarks (Based on Reach/Followers)
# Note: These are QUANTITY benchmarks. Quality-driven tiers (predicted by ML)
# may differ from these reach counts to reward engagement.
POPULARITY_TIERS = {
    "Nano": {"min": 0, "max": 10000},
    "Micro": {"min": 10000, "max": 100000},
    "Mid": {"min": 100000, "max": 500000},
    "Macro": {"min": 500000, "max": 1000000},
    "Mega": {"min": 1000000, "max": float('inf')}
}

