<?php

use Battles\Database\Db;
use Battles\GameLogs;
use Battles\InventoryItem;
use Battles\Nick;
use Battles\Template;
use Battles\User;

require_once 'functions.php';
if ($_GET['change'] ?? 0) {
    unset($_SESSION['receiverName']);
}
$_SESSION['receiverName'] = $_POST['receiverName'] ?? '';
$receiverId = null;
$queryItems = null;
$statusMessage = null;

if ($_SESSION['receiverName']) {
    $receiver = db::c()->query('SELECT `id`, `level`, `login` FROM `users` WHERE `login` = "?s"', $_SESSION['receiverName'])->fetch_assoc();
    if (!$receiver['id']) {
        $statusMessage = 'Персонажа не существует!';
        unset($_SESSION['receiverName']);
    } else {
        $receiverId = $receiver['id'];
        $submit = $_POST['action'] ?? 0;
        $sendItemId = $_POST['item_id'] ?? 0;
        $telegraphText = $_POST['message'] ?? 0;

        if ($submit == 'sendMessage' && User::getInstance()->money()->get()) {

            if ($telegraphText) {
                if (User::getInstance()->money()->spend(1)) {
                    db::c()->query('INSERT INTO `telegraph` (`receiver`,`text`) VALUES (?i,"?s")', $receiverId, $telegraphText);
                    $statusMessage = 'Сообщение отправлено.';
                } else {
                    $statusMessage = 'Недостаточно денег.';
                }
            } else {
                $statusMessage = 'Сообщение было оставлено пустым!';
            }
        }

        if ($submit == 'sendItem' && $sendItemId && User::getInstance()->money()->get()) {
            $itemName = Db::getInstance()->fetchColumn('select name from inventory where owner_id = ? and item_id = ? and dressed_slot = 0 and on_sale = 0', [User::getInstance()->getId(), $sendItemId]);
            if (!$itemName) {
                $statusMessage = "Предмет не найден в рюкзаке.";
            } else {
                if (User::getInstance()->money()->spend(1)) {
                    db::c()->query('UPDATE `inventory` SET owner_id = ?i WHERE item_id= ?i AND owner_id = ?i', $receiverId, $sendItemId, $_SESSION['uid']);
                    $statusMessage = 'Предмет "' . $itemName . '" передан персонажу ' . User::getInstance($receiverId)->getLogin();
                    $receiverLogMessage = 'Получен предмет "' . $itemName . '" от персонажа ' . User::getInstance()->getLogin();
                    db::c()->query('INSERT INTO `telegraph` (`receiver`,`text`) VALUES (?i,"?s")', $receiverId, 'Почтовый перевод: ' . $itemName . ' от персонажа ' . $user['login'] . '.');
                    // Пишем в лог отправителю.
                    GameLogs::addUserLog($_SESSION['uid'], $statusMessage, 'почта');
                    // Пишем в лог получателю.
                    GameLogs::addUserLog($receiverId, $receiverLogMessage, 'почта');
                } else {
                    $statusMessage = 'Недостаточно денег.';
                }
            }
        }

        $queryItems = db::c()->query('SELECT * FROM inventory WHERE dressed_slot = 0 AND on_sale = 0 AND owner_id = ?i', User::getInstance()->getId());
        while ($row = $queryItems->fetch_assoc()) {
            $iteminfo[] = new InventoryItem($row);
        }
    }
}
Template::header('Почта');
?>
    <div style="float: right">
        <button onclick="top.frames['gameframe'].location = 'city.php?cp'">Вернуться</button>
    </div>
    <h1>Почта</h1>
    <div style="text-align: center;"><span class="error"><?= $statusMessage ?></span></div>
    <legend>Услуги почты платные: 1 кредит.</legend>
<?php if ($_SESSION['receiverName'] ?? ''): ?>
    Получатель: <?= Nick::id($receiverId)->full() ?>
    <a href="?change">Сменить</a>
    <table width=100%>
        <tr>
            <td valign=top align=left width=30%>
                <form METHOD=POST>
                    <fieldset>
                        <legend><b>Телеграф</b></legend>
                        Вы можете отправить короткое сообщение любому персонажу, даже если он находится в offline или
                        другом городе.<br/>
                        Услуга платная: <b>1 кр.</b> <br/>
                        <input type="text" name="message" id="message" size="52"
                               placeholder="Сообщение: (Максимум 100 символов)">
                        <input type="hidden" name="action" value="telegraph">
                        <input type="submit" value="Отправить">
                    </fieldset>
                </form>
            <td valign=top align=right>
                <table class="zebra" WIDTH=100%" cellspacing="1" cellpadding="2">
                    <th colspan="2">Передача предметов
                        <?php foreach ($iteminfo

                        as $ii): ?>
                        <tr>
                            <td bgcolor='#d3d3d3'>
                                <?php $ii->printImage(); ?>
                                <form method="post">
                                    <input type="hidden" name="action" value="sendItem">
                                    <input type="hidden" name="item_id" value="<?= $ii->getId() ?>">
                                    <input type="submit" value="Передать за 1кр.">
                                </form>
                            <td bgcolor='#d3d3d3'>
                                <?php $ii->printInfo(); ?>

                                <?php endforeach; ?>
                                <?php if (empty($queryItems->getNumRows())): ?>
                        <tr>
                            <td align=center bgcolor=#C7C7C7>Нечего передавать...
                                <?php endif ?>
                </table>
    </table>
<?php else: ?>
    <form method="post">
        <input name='receiverName' placeholder="Логин получателя"> <input type=submit value='Применить'>
    </form>
<?php endif ?>