<?php
session_start();
require_once '../inc/functions.php';

if (!isLoggedIn()) {
    header('Location: index.php');
    exit;
}

$user = getUserById($_SESSION['user_id']);
if ($user['role'] !== 'admin') {
    die('Доступ запрещён');
}

$message = '';
$error = '';

// Обработка POST-запросов
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['action'])) {
        switch ($_POST['action']) {
            case 'create':
                $data = [
                    'name'               => $_POST['name'],
                    'description'        => $_POST['description'] ?: null,
                    'level_min'          => (int)$_POST['level_min'],
                    'level_max'          => (int)$_POST['level_max'],
                    'capture_threshold'  => (int)$_POST['capture_threshold'],
                    'initial_side'       => $_POST['initial_side'],
                    'icon'               => $_POST['icon'] ?: '/images/icons/blue_tower.png'
                ];
                if (adminCreateDistrict($data)) {
                    $message = 'Район создан.';
                } else {
                    $error = 'Ошибка создания.';
                }
                break;
            case 'update':
                $id = (int)$_POST['district_id'];
                $data = [];
                if (isset($_POST['name']))               $data['name']               = $_POST['name'];
                if (isset($_POST['description']))        $data['description']        = $_POST['description'] ?: null;
                if (isset($_POST['level_min']))          $data['level_min']          = (int)$_POST['level_min'];
                if (isset($_POST['level_max']))          $data['level_max']          = (int)$_POST['level_max'];
                if (isset($_POST['capture_threshold']))  $data['capture_threshold']  = (int)$_POST['capture_threshold'];
                if (isset($_POST['initial_side']))       $data['initial_side']       = $_POST['initial_side'];
                if (isset($_POST['icon']))               $data['icon']               = $_POST['icon'] ?: '/images/icons/blue_tower.png';
                if (adminUpdateDistrict($id, $data)) {
                    $message = 'Район обновлён.';
                } else {
                    $error = 'Ошибка обновления.';
                }
                break;
            case 'delete':
                $id = (int)$_POST['district_id'];
                if (adminDeleteDistrict($id)) {
                    $message = 'Район удалён.';
                } else {
                    $error = 'Ошибка удаления.';
                }
                break;
            case 'reset_progress':
                $id = (int)$_POST['district_id'];
                $stmt = $pdo->prepare("UPDATE district_state SET progress = 0 WHERE district_id = ?");
                $stmt->execute([$id]);
                $message = 'Прогресс сброшен.';
                break;
        }
    }
}

$districts = adminGetAllDistricts();

require_once '../inc/header.php';
?>

<span class="ttl"><b>Управление районами (админ)</b></span>
<div class="clb"></div>
<div class="hr"></div>

<?php if ($message): ?>
    <div class="info" style="color:green;"><?= htmlspecialchars($message) ?></div>
    <div class="hr"></div>
<?php endif; ?>
<?php if ($error): ?>
    <div class="error"><?= htmlspecialchars($error) ?></div>
    <div class="hr"></div>
<?php endif; ?>

<!-- Форма создания -->
<span class="ttl"><span>➕ Создать район</span></span>
<div class="hr"></div>
<form method="post" style="padding:10px;">
    <input type="hidden" name="action" value="create">
    <table width="100%">
        <tr><td>Название:</td><td><input type="text" name="name" required></td></tr>
        <tr><td>Описание:</td><td><textarea name="description" rows="2" cols="30"></textarea></td></tr>
        <tr><td>Уровни (мин-макс):</td><td><input type="number" name="level_min" value="1" style="width:70px;"> - <input type="number" name="level_max" value="30" style="width:70px;"></td></tr>
        <tr><td>Порог захвата:</td><td><input type="number" name="capture_threshold" value="20000"></td></tr>
        <tr><td>Начальная сторона:</td><td>
            <select name="initial_side">
                <option value="нейтральная">Нейтральная</option>
                <option value="Коза Ностра">Коза Ностра</option>
                <option value="Якудза">Якудза</option>
            </select>
        </td></tr>
        <tr><td>Иконка (URL):</td><td><input type="text" name="icon" value="/images/icons/blue_tower.png"></td></tr>
        <tr><td colspan="2" style="text-align:center;"><button type="submit" class="btn">Создать</button></td></tr>
    </table>
</form>
<div class="hr"></div>

<!-- Список районов с редактированием -->
<span class="ttl"><span>📋 Существующие районы</span></span>
<div class="hr"></div>

<?php foreach ($districts as $d): 
    $stmt = $pdo->prepare("SELECT * FROM district_state WHERE district_id = ?");
    $stmt->execute([$d['id']]);
    $state = $stmt->fetch();
    $progress = $state ? $state['progress'] : 0;
    $owner    = $state ? $state['controlling_side'] : $d['initial_side'];
?>
    <div style="border:1px solid #ddd; padding:10px; margin-bottom:10px;">
        <form method="post">
            <input type="hidden" name="action" value="update">
            <input type="hidden" name="district_id" value="<?= $d['id'] ?>">
            <table width="100%">
                <tr>
                    <td width="100">ID:</td><td><b><?= $d['id'] ?></b></td>
                    <td rowspan="7" valign="top" style="padding-left:20px;">
                        <div style="background:#f5f5f5; padding:10px;">
                            <b>Текущее состояние</b><br>
                            Владелец: <?= $owner ?: 'нейтральная' ?><br>
                            Прогресс: <?= $progress ?> / <?= $d['capture_threshold'] ?><br>
                            <button type="submit" formaction="" formmethod="post" name="action" value="reset_progress" class="btn small" style="margin-top:5px;" onclick="return confirm('Сбросить прогресс?')">Сбросить прогресс</button>
                        </div>
                    </td>
                </tr>
                <tr><td>Название:</td><td><input type="text" name="name" value="<?= htmlspecialchars($d['name']) ?>"></td></tr>
                <tr><td>Описание:</td><td><textarea name="description" rows="2"><?= htmlspecialchars($d['description']) ?></textarea></td></tr>
                <tr><td>Уровни:</td><td><input type="number" name="level_min" value="<?= $d['level_min'] ?>" style="width:60px;"> - <input type="number" name="level_max" value="<?= $d['level_max'] ?>" style="width:60px;"></td></tr>
                <tr><td>Порог:</td><td><input type="number" name="capture_threshold" value="<?= $d['capture_threshold'] ?>"></td></tr>
                <tr><td>Нач. сторона:</td><td>
                    <select name="initial_side">
                        <option value="нейтральная" <?= $d['initial_side'] == 'нейтральная' ? 'selected' : '' ?>>Нейтральная</option>
                        <option value="Коза Ностра" <?= $d['initial_side'] == 'Коза Ностра' ? 'selected' : '' ?>>Коза Ностра</option>
                        <option value="Якудза"      <?= $d['initial_side'] == 'Якудза' ? 'selected' : '' ?>>Якудза</option>
                    </select>
                </td></tr>
                <tr><td>Иконка:</td><td><input type="text" name="icon" value="<?= htmlspecialchars($d['icon']) ?>"></td></tr>
                <tr><td colspan="2" style="text-align:center;">
                    <button type="submit" class="btn">Сохранить</button>
                    <button type="submit" formaction="" formmethod="post" name="action" value="delete" class="btn" style="background:#ffcccc;" onclick="return confirm('Удалить район?')">Удалить</button>
                </td></tr>
            </table>
        </form>
    </div>
<?php endforeach; ?>

<?php require_once '../inc/foot.php'; ?>