<?php
// Здание регистратуры!
use Battles\Bank;
use Battles\GameConfigs;
use Battles\Rooms;
use Battles\Template;
use Battles\User;
use Battles\Database\Db;

require_once 'functions.php';
$userClan = Db::getInstance()->ofetch('select * from clans where owner_id = ?', User::getInstance()->getId());
$clanFullName = $_POST['clan_full_name'] ?? '';
$clanShortName = $_POST['clan_short_name'] ?? '';
$clanInfo = $_POST['clan_info'] ?? '';
$userBank = new Bank(User::getInstance()->getId());
if ($clanFullName && $clanShortName && $clanInfo && !$userClan) {

    $eff = Db::getInstance()->execute('select count(*) from users_effects where type = 20 and owner_id = ?', User::getInstance()->getId())->fetchColumn();
    $name_check = Db::getInstance()->execute('select count(*) from clans where full_name = ? or short_name = ?', [$clanFullName, $clanShortName])->fetchColumn();
    $errorMessage = [];
    if (GameConfigs::CLAN['clan_register_lock']) {
        $errorMessage[10] = 'Регистрация кланов закрыта! <BR>';
    }
    if (User::getInstance()->getAlign()) {
        $errorMessage[0] = 'Вы уже имеете направленность!. <BR>';
    }
    if (User::getInstance()->getClan()) {
        $errorMessage[1] = 'Вы уже состоите в клане!. <BR>';
    }
    if (GameConfigs::CLAN['clan_register_cost'] >= $userBank->getMoney()) {
        $errorMessage[2] = 'Не хватает денег на регистрацию клана. <BR>';
    }
    if (!$eff) {
        $errorMessage[3] = 'Нет проверки. <BR>';
    }
    if (!$name_check) {
        $errorMessage[4] = 'Клан с такими данными уже существует.<br>';
    }
    if (!$errorMessage || User::getInstance()->getAdmin()) {
        try {
            Db::getInstance()->execute('insert into clans (owner_id, full_name, short_name, info) values (?,?,?,?)', [User::getInstance()->getId(), $clanFullName, $clanShortName, $clanInfo]);
            $userBank->setMoney($userBank->getMoney() - GameConfigs::CLAN['clan_register_cost']);
            Battles\Bank::setBankMoney($userBank->getMoney(), User::getInstance()->getId(), 'clanRegister');
            // Заглушка для отображения данных по только что зарегистрированному клану, когда запрос в базу в начале файла ещё не проходит.
            $userClan = new stdClass();
            $userClan->full_name = $clanFullName;
            $userClan->short_name = $clanShortName;
            $userClan->info = $clanInfo;
            unset($clanShortName, $clanFullName, $clanInfo);
            echo 'Заявка на регистрацию клана подана.';
        } catch (Throwable $exception) {
            echo '<div style="background-color: #fae0e0;"><span class="error">Ошибка записи в базу!</span><br>' . $exception . '</div>';
        }
    } else {
        foreach ($errorMessage as $error) {
            echo sprintf('<span class="error">%s</span>', $error);
        }
    }
}
Template::header(Rooms::$roomNames[30]);
Template::buildingTop(Rooms::$roomNames[30], 'strah');
if ($userClan): ?>
    <div>
        <fieldset style="display: inline;">
            <legend>Заявка на регистрацию</legend>
            <label>
                <input size=30 disabled value="<?= $userClan->full_name ?>">
            </label>
            <label>
                <input size=30 disabled value="<?= $userClan->short_name ?>">
            </label><BR>
            <BR>
            <label>
                <textarea cols=80 rows=10 disabled><?= nl2br($userClan->info) ?></textarea>
            </label><BR>
            <button disabled>Заявка подана и рассматривается</button>
        </fieldset>
    </div>
<?php else: ?>
    <div>
        <form method="post">
            <fieldset style="display: inline;">
                <legend>Заявка на регистрацию</legend>
                <label>
                    <input size=30 name="clan_full_name" placeholder="Название клана" value="<?= $clanFullName ?>">
                </label>
                <label>
                    <input size=30 name="clan_short_name" maxlength="5" placeholder="Английская аббревиатура"
                           value="<?= $clanShortName ?>">
                </label><BR>
                <BR>
                <label>
<textarea cols=80 rows=10 name="clan_info"
          placeholder="Информация о клане для энциклопедии"><?= nl2br($clanInfo) ?></textarea>
                </label><BR>
                <input type="submit" value="Подать заявку">
            </fieldset>
        </form>
    </div>
    <div>
        Для регистрации клана необходимо иметь:
        <ol>
            <li>Проверку на чистоту. У вас её нет.
            <li>10000 кредитов на банковском счёте. У вас на счету <?= $userBank->getMoney() ?>.
        </ol>
        Поле информации не обазательное. Но его содержимое может серьёзно повысить шансы на регистрацию клана.<BR>
        Заявку на регистрацию подает глава клана.
    </div>
<?php endif; ?>