#!/bin/bash

# Master validation script that runs all validations

echo "=== Trip With Us Comprehensive Validation ==="

# Configuration
VALIDATION_DIR="$(dirname "$0")"
REPORT_DIR="../state"
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")

# Initialize overall results
overall_status="pass"
total_issues=0
validation_results=""

# Function to run validation and track results
run_validation() {
    local script_name=$1
    local validation_name=$2
    
    echo ""
    echo "🏃 Running $validation_name..."
    
    if [ -f "$VALIDATION_DIR/$script_name" ]; then
        if bash "$VALIDATION_DIR/$script_name"; then
            echo "✅ $validation_name: PASSED"
            validation_results="${validation_results}${validation_name}:pass,"
        else
            echo "❌ $validation_name: FAILED"
            validation_results="${validation_results}${validation_name}:fail,"
            overall_status="fail"
            ((total_issues++))
        fi
    else
        echo "⚠️  $validation_name: Script not found"
        validation_results="${validation_results}${validation_name}:missing,"
    fi
}

# Run all validations
echo "Starting comprehensive validation suite..."

run_validation "validate-typescript.sh" "TypeScript"
run_validation "validate-tests.sh" "Testing"
run_validation "validate-supabase.sh" "Supabase"
run_validation "validate-performance.sh" "Performance"
run_validation "validate-security.sh" "Security"

# Generate master report
echo ""
echo "=== Validation Summary ==="
echo "Timestamp: $TIMESTAMP"
echo "Overall Status: $overall_status"
echo "Total Issues: $total_issues"

# Create comprehensive report
cat > "$REPORT_DIR/comprehensive-validation-report.json" << EOF
{
  "timestamp": "$TIMESTAMP",
  "overall_status": "$overall_status",
  "total_issues": $total_issues,
  "validation_results": "$validation_results",
  "individual_reports": {
    "typescript": "typescript-report.json",
    "testing": "test-validation-report.json",
    "supabase": "supabase-validation-report.json",
    "performance": "performance-validation-report.json",
    "security": "security-validation-report.json"
  }
}
EOF

if [ "$overall_status" = "pass" ]; then
    echo "🎉 All validations passed!"
    exit 0
else
    echo "❌ $total_issues validation(s) failed"
    echo "📄 See individual reports in $REPORT_DIR/"
    exit 1
fi