# ==========================================
# PUJA BOOKING URLS
# ==========================================
# Maps puja_key to booking URLs on Karishye website
# Used to generate puja-specific booking links after information collection

PUJA_BOOKING_URLS = {
    # Life Event Based Pujas
    "gruhapravesham": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/gruhapravesham-puja-telugu-telangana-andhra",
    "gruhapravesham_lagu": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/gruhapravesham-lagu-telugu-puja-samagri-included-telangana-andhra-karishye",
    "gruhapravesham_sampoorna": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/gruhapravesham-sampoorna-telugu-puja-samagri-included-telangana-andhra-karishye",
    "namakaranam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/naamakaranam-puja-telugu-telangana-andhra",  # Legacy key
    "naamakaranam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/naamakaranam-puja-telugu-telangana-andhra",  # Correct key matching PUJA_PATTERNS
    "annaprasana": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/annaprasana-puja-telugu-telangana-andhra",
    "upanayanam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/upanayanam-telugu-puja-samagri-included-telangana-andhra-karishye",
    "vivaaham": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/marriage-telugu-groom-side-puja-telangana-andhra",  # Default to groom side
    "vivaaham_groom": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/marriage-telugu-groom-side-puja-telangana-andhra",
    "vivaaham_bride": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/marriage-bride-side-telugu-vivaham-karishye",
    "vivaha_nischaya_tambulalu": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/marriage-engagement",  # Engagement ceremony
    "seemanthonayanam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/seemanthonayanam-telugu-puja-telangana-andhra",
    "aksharabhyasam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/aksharabhyasam-telugu-puja-telangana-andhra-samagri",
    
    # Homams
    "ganapathi_homam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/ganapati-homam-telugu-telangana-andhra",
    "saraswati_homam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/saraswati-homam-telugu-samagri-included",
    "maha_mrityunjaya_homam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/maha-mrityunjaya-homam-telugu",
    "chandi_homam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/chandi-homam-telugu-samagri-included-telangana-andhra",
    "sudarshana_homam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/sudarshana-homam-telugu-samagri-included",
    "ayushya_homam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/ayushya-homam-telugu-samagri-included-telangana-andhra-karishye",
    "aarogya_pasupatha_homam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/aarogya-pasupatha-parayanam-homam-telugu",
    
    # Vratams
    "vratam": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/satyanarayana-vratam-telugu-puja-samagri-included-telangana-andhra",
    "varalakshmi_vratham": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/varalakshmi-vratam-telugu-includes-samagri",
    
    # Other Pujas
    "rudrabhishek": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/rudrabhishekam-eka-rudram-telugu-puja",
    "ancestral_puja": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/samvathsarikam-telugu-puja-telangana-andhra",
    "shop_office_opening": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/shop-office-opening-telugu-puja-telangana-andhra",
    "shankusthapana": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/shankusthapana-bhumi-puja-telugu-telangana-andhra",
    "udakasanthi": "https://samagri.karishye.co/collections/all-pujas-telangana-andhra-pradesh/products/udakasanthi-telugu-puja",
}

# Default booking URL if specific puja URL is not found
DEFAULT_BOOKING_URL = "https://karishye.co/collections/all-pujas-telangana-andhra-pradesh"


# ==========================================
# PUJA CATEGORIZATION SYSTEM (NEW)
# ==========================================
# This replaces the rigid PUJA_QUESTIONS approach
# AI will naturally collect information based on these categories

PUJA_CATEGORIES = {
    # Events that REQUIRE muhurtam (auspicious date/time) consultation
    "muhurtam_required": [
        "gruhapravesham",           # House warming - specific auspicious time needed
        "vivaaham",                 # Wedding - fixed muhurtam essential
        "upanayanam",               # Sacred thread - specific date required
        "seemanthonayanam",         # Baby shower - specific pregnancy month
        "shop_office_opening",      # Business opening - auspicious timing needed
        "shankusthapana",           # Ground breaking - muhurtam essential
        "vivaha_nischaya_tambulalu" # Engagement - auspicious date needed
    ],
    
    # Events with FLEXIBLE dates (homams that can be done anytime)
    "flexible_date": [
        "ganapathi_homam",          # Can be performed any auspicious day
        "saraswati_homam",          # Flexible scheduling
        "maha_mrityunjaya_homam",   # Health homam - can be urgent or scheduled
        "chandi_homam",             # Protection homam - flexible
        "sudarshana_homam",         # Protection homam - flexible
        "ayushya_homam",            # Longevity homam - flexible
        "rudrabhishek",             # Shiva worship - Monday/auspicious day
        "udakasanthi",              # Water purification - flexible
        "graha_shanti"              # Planetary remedies - flexible
    ],
    
    # Events with SPECIFIC timing based on birth/life events
    "life_event_based": [
        "namakaranam",              # 10th, 12th, or 21st day after birth
        "annaprasana",              # 6th or 7th month after birth
        "aksharabhyasam",           # Based on child's age (3-5 years)
        "ancestral_puja"            # Death anniversary or specific date
    ],
    
    # Vratams (typically have traditional/festival dates but can be flexible)
    "vratams": [
        "satyanarayana_vratam",     # Can be done on full moon or any auspicious day
        "varalakshmi_vratham"       # Typically Shravana month, but flexible
    ]
}

# Essential information needed for bookings (flexible, AI-driven collection)
ESSENTIAL_BOOKING_INFO = {
    "all_pujas": [
        "name",           # User's name (required)
        "location",       # City/area in AP or Telangana (required)
        "date_preference" # Preferred date or "ASAP" or "need muhurtam consultation" (required)
    ],
    
    "muhurtam_required_additional": [
        "muhurtam_status"  # "Already have muhurtam" vs "Need guru to set muhurtam"
    ],
    
    "life_events_additional": {
        "vivaaham": ["couple_names", "family_gotra"],
        "upanayanam": ["child_name", "child_birth_details"],
        "namakaranam": ["baby_birth_date", "baby_gender"],
        "annaprasana": ["baby_birth_date", "ceremony_month_preference"],
        "seemanthonayanam": ["pregnancy_month"],
        "gruhapravesham": ["new_home_address"],
        "shop_office_opening": ["business_type", "business_address"],
        "shankusthapana": ["plot_address", "construction_type"]
    },
    
    "optional_but_helpful": [
        "specific_intentions",  # Why they want this puja (health, prosperity, etc.)
        "family_customs",       # Any specific traditions to follow
        "special_requirements"  # Additional notes
    ]
}

# ==========================================
# PUJA PATTERNS
# ==========================================
# Maps user input patterns to specific pujas
# Used for intent detection and puja identification

PUJA_PATTERNS = {
        "gruhapravesha_puja": {
            "patterns": ["gruhapravesham", "gruha pravesham", "grihapravesh", "griha pravesh", "house warming", "housewarming", "new home", "home entry", "gruhapravesha"],
            "kb_name": "Gruhapravesha Puja",
            "questions_key": "gruhapravesham"
        },
        "vivaaham": {
            "patterns": ["vivaaham", "vivaham", "wedding", "marriage", "kalyanam", "shaadi", "matrimony", "vivaha"],
            "kb_name": "Vivaaham",
            "questions_key": "vivaaham"
        },
        "upanayanam": {
            "patterns": ["upanayanam", "upanayana", "thread ceremony", "sacred thread", "janeu", "yagnopavit", "brahmopadesam"],
            "kb_name": "Upanayanam",
            "questions_key": "upanayanam"
        },
        "naamakaranam": {
            "patterns": ["namakaranam", "namakarana", "naamakaranam", "naming ceremony", "baby naming", "cradle ceremony", "nama karan"],
            "kb_name": "Naamakaranam",
            "questions_key": "namakaranam"
        },
        "samvathsarikam": {
            "patterns": ["samvathsarikam", "ancestral puja", "pitru puja", "shraddha", "shradh", "tharpanam", "tharpan", "death anniversary", "masikam", "yearly ceremony"],
            "kb_name": "Samvathsarikam",
            "questions_key": "ancestral_puja"
        },
        "ganapati_homam": {
            "patterns": ["ganapathi homam", "ganapati homam", "ganesha homam", "ganesh homam", "ganapathi havan", "vinayaka homam", "ganpati havan"],
            "kb_name": "Ganapati Homam",
            "questions_key": "ganapathi_homam"
        },
        "saraswati_homam": {
            "patterns": ["saraswati homam", "saraswathi homam", "saraswati havan", "saraswathi puja"],
            "kb_name": "Saraswati Homam",
            "questions_key": "saraswati_homam"
        },
        "maha_mrityunjaya_homam": {
            "patterns": ["maha mrityunjaya", "mrityunjaya homam", "mahamrityunjaya", "health homam", "healing homam"],
            "kb_name": "Maha Mrityunjaya Homam",
            "questions_key": "maha_mrityunjaya_homam"
        },
        "rudrabhishekam": {
            "patterns": ["rudrabhishek", "rudra abhishek", "rudrabhishekam", "rudra", "shiva homam", "mahadev", "rudram", "shiva abhishek", "lingam puja"],
            "kb_name": "Rudrabhishekam",
            "questions_key": "rudrabhishek"
        },
        "satyanarayana_vratam": {
            "patterns": ["satyanarayana vratam", "satyanarayan", "vratam", "vrat", "satyanarayana puja"],
            "kb_name": "Satyanarayana Vratam",
            "questions_key": "vratam"
        },
        "varalakshmi_vratham": {
            "patterns": ["varalakshmi vratham", "vara lakshmi", "varalakshmi vrat", "lakshmi vratam"],
            "kb_name": "Varalakshmi Vratham",
            "questions_key": "varalakshmi_vratham"
        },
        "annaprasana": {
            "patterns": ["annaprasana", "anna prasana", "rice ceremony", "first feeding", "annaprashana"],
            "kb_name": "Annaprasana",
            "questions_key": "annaprasana"
        },
        "seemanthonayanam": {
            "patterns": ["seemantham", "seemanthonayanam", "valaikappu", "baby shower", "godh bharai"],
            "kb_name": "Seemanthonayanam",
            "questions_key": "seemanthonayanam"
        },
        "aksharabhyasam": {
            "patterns": ["aksharabhyasam", "akshara abhyasam", "vidyarambham", "education ceremony", "first learning"],
            "kb_name": "Aksharabhyasam",
            "questions_key": "aksharabhyasam"
        },
        "shop_office_opening": {
            "patterns": ["shop opening", "office opening", "business opening", "store opening", "company opening", "new business"],
            "kb_name": "Shop / Office Opening Puja",
            "questions_key": "shop_office_opening"
        },
        "shankusthapana": {
            "patterns": ["bhumi puja", "bhoomi pooja", "shankusthapana", "ground breaking", "construction puja", "land puja"],
            "kb_name": "Shankusthapana - Bhumi Pooja",
            "questions_key": "shankusthapana"
        },
        "udakasanthi": {
            "patterns": ["udakasanthi", "udakashanti", "water purification", "udaka shanti"],
            "kb_name": "Udakasanthi",
            "questions_key": "udakasanthi"
        },
        "vivaha_nischaya_tambulalu": {
            "patterns": ["engagement", "vivaha nischaya", "tambulalu", "nischitartham", "ring ceremony"],
            "kb_name": "Vivaha Nischaya Tambulalu",
            "questions_key": "vivaha_nischaya_tambulalu"
        },
        "chandi_homam": {
            "patterns": ["chandi homam", "chandi havan", "durga homam", "devi homam"],
            "kb_name": "Chandi Homam",
            "questions_key": "chandi_homam"
        },
        "sudarshana_homam": {
            "patterns": ["sudarshana homam", "sudarshan homam", "protection homam"],
            "kb_name": "Sudarshana Homam",
            "questions_key": "sudarshana_homam"
        },
        "ayushya_homam": {
            "patterns": ["ayushya homam", "ayushya havan", "longevity homam"],
            "kb_name": "Ayushya Homam",
            "questions_key": "ayushya_homam"
        }
    }


# ==========================================
# HELPER FUNCTIONS
# ==========================================

def get_puja_category(puja_key: str) -> str:
    """
    Determine which category a puja belongs to.
    
    Args:
        puja_key: The puja identifier (e.g., "ganapathi_homam", "vivaaham")
    
    Returns:
        Category name: "muhurtam_required", "flexible_date", "life_event_based", "vratams", or "unknown"
    """
    for category, pujas in PUJA_CATEGORIES.items():
        if puja_key in pujas:
            return category
    return "unknown"


def needs_muhurtam_question(puja_key: str) -> bool:
    """
    Check if a puja requires asking about muhurtam status.
    
    Args:
        puja_key: The puja identifier
    
    Returns:
        True if muhurtam question should be asked, False otherwise
    """
    return puja_key in PUJA_CATEGORIES.get("muhurtam_required", [])


def get_puja_booking_url(puja_key: str) -> str:
    """
    Get the booking URL for a specific puja.
    
    Args:
        puja_key: The puja identifier (e.g., "gruhapravesham", "namakaranam")
    
    Returns:
        Puja-specific booking URL, or default URL if not found
    """
    return PUJA_BOOKING_URLS.get(puja_key, DEFAULT_BOOKING_URL)
