<?php
// api/player.php — Create or load a player session

require_once __DIR__ . '/../db.php';

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') exit;

$db     = get_db();
$method = $_SERVER['REQUEST_METHOD'];

// ── GET /api/player.php?session_id=xxx ─────────────────────────────────────
if ($method === 'GET') {
    $sid = $_GET['session_id'] ?? '';
    if (!$sid) json_error('session_id required');

    $player = $db->prepare('SELECT * FROM players WHERE session_id = ?');
    $player->execute([$sid]);
    $row = $player->fetch();

    if (!$row) json_error('Player not found', 404);

    $stats = $db->prepare('SELECT * FROM stats WHERE player_id = ?');
    $stats->execute([$row['id']]);
    $s = $stats->fetch();

    json_response(['player' => $row, 'stats' => $s]);
}

// ── POST /api/player.php — Create new session ─────────────────────────────
if ($method === 'POST') {
    $input = get_input();
    $sid   = $input['session_id'] ?? bin2hex(random_bytes(16));
    $name  = $input['name']        ?? random_name();
    $seed  = $input['avatar_seed'] ?? random_seed();

    // Upsert player
    $stmt = $db->prepare('
        INSERT INTO players (session_id, name, avatar_seed, bankroll)
        VALUES (?, ?, ?, 1000)
        ON CONFLICT(session_id) DO UPDATE SET updated_at = CURRENT_TIMESTAMP
    ');
    $stmt->execute([$sid, $name, $seed]);

    $player = $db->prepare('SELECT * FROM players WHERE session_id = ?');
    $player->execute([$sid]);
    $row = $player->fetch();

    // Create stats row if missing
    $db->prepare('
        INSERT OR IGNORE INTO stats (player_id) VALUES (?)
    ')->execute([$row['id']]);

    $stats = $db->prepare('SELECT * FROM stats WHERE player_id = ?');
    $stats->execute([$row['id']]);
    $s = $stats->fetch();

    json_response(['player' => $row, 'stats' => $s]);
}

json_error('Method not allowed', 405);

// ── Helpers ────────────────────────────────────────────────────────────────
function random_name(): string {
    $first = ['Alex','Jordan','Sam','Casey','Morgan','Taylor','Drew','Avery','Quinn','Reese','Blake','Riley','Skylar','Devon','Harley'];
    $last  = ['Rivera','Kane','Voss','Morrow','Blaine','Ash','Lennox','Cross','Hale','Vance','Storm','Hayes','Cole','Fox','Reid'];
    return $first[array_rand($first)] . ' ' . $last[array_rand($last)];
}

function random_seed(): string {
    return 'cs_' . substr(md5(uniqid('', true)), 0, 8);
}
