"""
3 complete negotiation scenarios with pre-built rounds.
Each round has: proposal, satisfaction scores, concessions, reasoning.
The negotiation engine iterates through these instead of calling Gemini.
"""

MOCK_SCENARIOS = {
    # ─────────────────────────────────────────────────────
    # SCENARIO 1: Expense Splitting (Goa Trip)
    # ─────────────────────────────────────────────────────
    "expenses": {
        "feature_type": "expenses",
        "rounds": [
            {
                "round_number": 1, "proposer": "A", "action": "propose",
                "proposal": {
                    "summary": "Hotel 50-50, Fuel 60-40 (I drove), Dinner 50-50. B owes A ₹8,200",
                    "details": {
                        "hotel": {"amount": 12000, "split": "50-50"},
                        "fuel": {"amount": 3000, "split": "60-40"},
                        "dinner": {"amount": 2000, "split": "50-50"},
                        "settlement": {"from": "B", "to": "A", "amount": 8200,
                                       "payee_upi": "rahul@paytm", "payee_name": "Rahul"}
                    },
                    "for_party_a": "Fuel 60-40 reflects driving effort",
                    "for_party_b": "Hotel and dinner are fair 50-50"
                },
                "satisfaction_score": 90,
                "reasoning": "Opening with ideal: 60-40 fuel since I drove the entire way.",
                "concessions_made": [],
                "concessions_requested": ["Accept 60-40 fuel split"]
            },
            {
                "round_number": 2, "proposer": "B", "action": "counter",
                "proposal": {
                    "summary": "Hotel 50-50, Fuel 50-50 (I navigated + planned route), Dinner 50-50",
                    "details": {
                        "hotel": {"amount": 12000, "split": "50-50"},
                        "fuel": {"amount": 3000, "split": "50-50"},
                        "dinner": {"amount": 2000, "split": "50-50"},
                        "settlement": {"from": "B", "to": "A", "amount": 7500,
                                       "payee_upi": "rahul@paytm", "payee_name": "Rahul"}
                    },
                    "for_party_a": "Equal base split on everything",
                    "for_party_b": "Navigation + route planning justifies equal fuel"
                },
                "satisfaction_score": 55,
                "reasoning": "Countering with 50-50 fuel. Navigation effort was significant.",
                "concessions_made": ["Accepted hotel and dinner at 50-50"],
                "concessions_requested": ["Equal fuel split"]
            },
            {
                "round_number": 3, "proposer": "A", "action": "accept",
                "proposal": {
                    "summary": "AGREED: Hotel 50-50, Fuel 55-45 (compromise), Dinner 50-50. B owes ₹8,050",
                    "details": {
                        "hotel": {"amount": 12000, "split": "50-50"},
                        "fuel": {"amount": 3000, "split": "55-45"},
                        "dinner": {"amount": 2000, "split": "50-50"},
                        "settlement": {"from": "B", "to": "A", "amount": 8050,
                                       "payee_upi": "rahul@paytm", "payee_name": "Rahul"}
                    },
                    "for_party_a": "55-45 acknowledges driving. Fair middle ground.",
                    "for_party_b": "Only ₹150 more than 50-50. Navigation valued."
                },
                "satisfaction_score": 76,
                "reasoning": "55-45 is fair. Both efforts acknowledged. Accepting.",
                "concessions_made": ["Fuel 60-40 → 55-45"],
                "concessions_requested": []
            }
        ]
    },

    # ─────────────────────────────────────────────────────
    # SCENARIO 2: Restaurant Decision
    # ─────────────────────────────────────────────────────
    "collaborative": {
        "feature_type": "collaborative",
        "rounds": [
            {
                "round_number": 1, "proposer": "A", "action": "propose",
                "proposal": {
                    "summary": "Thai food at Jaan, Bandra — ₹1,200 for two, great veg options",
                    "details": {
                        "restaurant": "Jaan Thai Restaurant",
                        "cuisine": "Thai", "location": "Hill Road, Bandra West",
                        "price_for_two": 1200, "rating": 4.3, "veg_friendly": True
                    },
                    "for_party_a": "Spicy Thai options, Bandra location, casual vibe",
                    "for_party_b": "Vegetarian-friendly menu, within ₹1,200 budget"
                },
                "satisfaction_score": 85,
                "reasoning": "Thai is the overlap. Jaan has spice + veg options.",
                "concessions_made": ["Chose Thai over spicy Indian"],
                "concessions_requested": []
            },
            {
                "round_number": 2, "proposer": "B", "action": "accept",
                "proposal": {
                    "summary": "AGREED: Jaan Thai Restaurant, Hill Road Bandra, tonight 8 PM",
                    "details": {
                        "restaurant": "Jaan Thai Restaurant",
                        "cuisine": "Thai", "location": "Hill Road, Bandra West",
                        "price_for_two": 1200, "time": "8:00 PM"
                    },
                    "for_party_a": "Thai in Bandra — perfect match",
                    "for_party_b": "Budget-friendly, vegetarian menu, 4.3 rating"
                },
                "satisfaction_score": 88,
                "reasoning": "Perfect overlap. Both sides happy. Accepting.",
                "concessions_made": [], "concessions_requested": []
            }
        ]
    },

    # ─────────────────────────────────────────────────────
    # SCENARIO 3: Marketplace (PS5 Buy/Sell)
    # ─────────────────────────────────────────────────────
    "marketplace": {
        "feature_type": "marketplace",
        "rounds": [
            {
                "round_number": 1, "proposer": "A", "action": "propose",
                "proposal": {
                    "summary": "PS5 + 2 controllers + 3 games for ₹35,000. Pickup Andheri.",
                    "details": {"item": "PS5 bundle", "price": 35000, "method": "pickup"},
                    "for_party_a": "Full asking price", "for_party_b": "Premium bundle"
                },
                "satisfaction_score": 95, "reasoning": "Starting at asking price.",
                "concessions_made": [], "concessions_requested": ["Full price"]
            },
            {
                "round_number": 2, "proposer": "B", "action": "counter",
                "proposal": {
                    "summary": "PS5 bundle for ₹27,000. I'll pick up.",
                    "details": {"item": "PS5 bundle", "price": 27000, "method": "pickup"},
                    "for_party_a": "Quick sale", "for_party_b": "Under budget"
                },
                "satisfaction_score": 60, "reasoning": "Anchoring low.",
                "concessions_made": ["Pickup offered"], "concessions_requested": ["Lower price"]
            },
            {
                "round_number": 3, "proposer": "A", "action": "counter",
                "proposal": {
                    "summary": "PS5 bundle + original box for ₹31,000.",
                    "details": {"item": "PS5 bundle + box", "price": 31000, "method": "pickup"},
                    "for_party_a": "Above minimum", "for_party_b": "Box adds resale value"
                },
                "satisfaction_score": 72, "reasoning": "Dropped ₹4K, sweetened deal with box.",
                "concessions_made": ["₹35K→₹31K", "Added original box"], "concessions_requested": []
            },
            {
                "round_number": 4, "proposer": "B", "action": "accept",
                "proposal": {
                    "summary": "AGREED: PS5 + 2 controllers + 3 games + box for ₹29,500. Pickup Andheri.",
                    "details": {
                        "item": "PS5 + 2 controllers + 3 games + original box",
                        "price": 29500, "method": "pickup from Andheri",
                        "settlement": {"payee_upi": "seller@upi", "payee_name": "Seller", "amount": 29500}
                    },
                    "for_party_a": "Above ₹30K minimum", "for_party_b": "Full bundle under ₹30K"
                },
                "satisfaction_score": 78, "reasoning": "Fair split. Bundle worth it.",
                "concessions_made": ["₹27K→₹29.5K"], "concessions_requested": []
            }
        ]
    }
}

def get_mock_scenario(feature_type: str) -> dict:
    return MOCK_SCENARIOS.get(feature_type, MOCK_SCENARIOS["expenses"])