#!/usr/bin/env python3
from pathlib import Path
import re
import subprocess
import sys

root = Path(__file__).resolve().parents[1]
overlay = root / "laravel-overlay"

errors = []

required = [
    overlay / "bootstrap/app.php",
    overlay / "bootstrap/providers.php",
    overlay / "routes/api.php",
    overlay / "routes/web.php",
    overlay / "app/Models/User.php",
    overlay / "app/Services/Wallet/WalletService.php",
]
for path in required:
    if not path.exists():
        errors.append(f"Missing required file: {path.relative_to(root)}")

route_text = (overlay / "routes/api.php").read_text(encoding="utf-8")
pattern = re.compile(r"Route::(?:get|post|put|patch|delete)\(\s*['\"]([^'\"]+)")
seen = {}
for uri in pattern.findall(route_text):
    seen[uri] = seen.get(uri, 0) + 1

# Same URI can legitimately have different methods, so this is only a basic warning.
for uri, count in seen.items():
    if count > 4:
        errors.append(f"Suspicious repeated route URI: {uri} ({count} declarations)")

if errors:
    print("Release validation FAILED")
    for error in errors:
        print(" -", error)
    sys.exit(1)

print("Release structure validation passed.")
