#!/bin/bash

# Fix Venue Template IDs for Event 124
# Updates orphaned templates to have venue_id set correctly
#
# Usage: ./scripts/fix-venue-template-ids.sh

set -e

# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# Load database helper functions
source "$(dirname "$0")/_db-helper.sh"

echo -e "${BLUE}=================================================${NC}"
echo -e "${BLUE}  Fix Venue Template IDs${NC}"
echo -e "${BLUE}=================================================${NC}"
echo ""

# Step 1: Test database connection
echo -e "${YELLOW}[1/5] Testing database connection...${NC}"
if ! db_test_connection; then
    echo -e "${RED}✗ Failed to connect to database${NC}"
    echo -e "${RED}  Check your .env file configuration${NC}"
    exit 1
fi
echo -e "${GREEN}✓ Database connection successful${NC}"
echo ""

# Step 2: Check current state
echo -e "${YELLOW}[2/5] Checking current template state...${NC}"
echo ""
echo "Current venue_templates (IDs 1, 2, 3):"
db_query "SELECT id, event_id, venue_id, version, status, total_seats FROM venue_templates WHERE id IN (1, 2, 3) ORDER BY id"
echo ""

# Check for Phase 3 architecture compliance
# Templates should have: event_id=NULL, venue_id=1 (venue-scoped, reusable)
TEMPLATES_NEEDING_FIX=$(db_count_where "venue_templates" "id IN (1, 2, 3) AND (event_id != 124 OR event_id IS NULL)")

# Count how many have wrong event_id
WRONG_EVENT_ID=$(db_count_where "venue_templates" "id IN (1, 2, 3) AND event_id IS NOT NULL AND event_id != 124")

echo -e "Templates with wrong event_id: ${YELLOW}${WRONG_EVENT_ID}${NC}"
echo ""

if [ "$WRONG_EVENT_ID" -eq "0" ]; then
    echo -e "${GREEN}✓ All templates have correct event_id${NC}"
    echo -e "${GREEN}  No fix needed!${NC}"
    exit 0
fi

echo -e "${BLUE}Templates need to be fixed to work with event 124${NC}"
echo -e "${BLUE}Will set: event_id=NULL, venue_id=1 (Phase 3 architecture)${NC}"
echo ""

# Step 3: Check event 124
echo -e "${YELLOW}[3/5] Checking event 124...${NC}"
EVENT_124=$(db_query "SELECT id, name, venue_id FROM events WHERE id = 124")
if [ -z "$EVENT_124" ]; then
    echo -e "${RED}✗ Event 124 not found${NC}"
    exit 1
fi

EVENT_VENUE_ID=$(db_query "SELECT venue_id FROM events WHERE id = 124")
echo -e "Event 124 details:"
echo "$EVENT_124"
echo ""

if [ -z "$EVENT_VENUE_ID" ] || [ "$EVENT_VENUE_ID" == "NULL" ]; then
    echo -e "${RED}✗ Event 124 does not have venue_id set${NC}"
    echo -e "${RED}  Cannot proceed - event must be assigned to a venue first${NC}"
    exit 1
fi

echo -e "${GREEN}✓ Event 124 has venue_id: ${EVENT_VENUE_ID}${NC}"
echo ""

# Step 4: Apply fix
echo -e "${YELLOW}[4/5] Applying fix...${NC}"
echo -e "${BLUE}Updating templates 1, 2, 3 to:${NC}"
echo -e "${BLUE}  - event_id = NULL (Phase 3: venue-scoped)${NC}"
echo -e "${BLUE}  - venue_id = ${EVENT_VENUE_ID}${NC}"
echo ""

# Execute update - set event_id to NULL and venue_id to correct value
db_query "UPDATE venue_templates SET event_id = NULL, venue_id = ${EVENT_VENUE_ID} WHERE id IN (1, 2, 3)"

echo -e "${GREEN}✓ Templates updated${NC}"
echo ""

# Step 5: Verify fix
echo -e "${YELLOW}[5/5] Verifying fix...${NC}"
echo ""
echo "Updated venue_templates:"
db_query "SELECT id, event_id, venue_id, version, status, total_seats FROM venue_templates WHERE id IN (1, 2, 3) ORDER BY id"
echo ""

# Verify Phase 3 architecture (event_id=NULL, venue_id=1)
CORRECT_TEMPLATES=$(db_count_where "venue_templates" "id IN (1, 2, 3) AND event_id IS NULL AND venue_id = ${EVENT_VENUE_ID}")
if [ "$CORRECT_TEMPLATES" -eq "3" ]; then
    echo -e "${GREEN}✓ All templates now follow Phase 3 architecture${NC}"
    echo -e "${GREEN}  (event_id=NULL, venue_id=${EVENT_VENUE_ID})${NC}"
else
    echo -e "${RED}✗ Templates still have incorrect values${NC}"
    echo -e "${RED}  Expected: event_id=NULL, venue_id=${EVENT_VENUE_ID}${NC}"
    exit 1
fi

echo ""
echo -e "${BLUE}=================================================${NC}"
echo -e "${GREEN}✓ Fix complete!${NC}"
echo -e "${BLUE}=================================================${NC}"
echo ""
echo -e "Next steps:"
echo -e "  1. Run seat sync:  ${BLUE}php artisan venue:sync-seats 124${NC}"
echo -e "  2. Test API:       ${BLUE}curl https://dev.globalgalashow.com/api/venue/availability/124${NC}"
echo -e "  3. Test frontend:  ${BLUE}http://localhost:3003/booking/124${NC}"
echo ""
