<?php
declare(strict_types=1);
require_once __DIR__ . '/includes/bootstrap.php';
require_once __DIR__ . '/includes/restaurants.php';
require_once __DIR__ . '/includes/reviews.php';

$gkUser = require_login();
$error = null;

if (is_post()) {
    csrf_check();

    $restaurantIdExisting = post_str('restaurantId');
    $newRestaurantName = post_str('newRestaurantName');
    $city = post_str('city');
    $address = post_str('address');
    $confirmedAliasFor = post_str('confirmedAliasFor');

    $dishesRaw = post_str('dishes');
    $dishes = array_values(array_filter(array_map('trim', explode(',', $dishesRaw)), fn($d) => $d !== ''));

    $appearanceScore = (int) post_str('appearanceScore');
    $menuVarietyScore = (int) post_str('menuVarietyScore');
    $serviceScore = (int) post_str('serviceScore');
    $foodQualityScore = (int) post_str('foodQualityScore');
    $valueForMoneyScore = (int) post_str('valueForMoneyScore');
    $priceLevel = (int) post_str('priceLevel');
    $comment = post_str('comment');

    $scoreChecks = [
        'megjeleneshez' => $appearanceScore,
        'etlap valtozatossaghoz' => $menuVarietyScore,
        'kiszolgalashoz' => $serviceScore,
        'etel minosegehez' => $foodQualityScore,
        'ar/ertek aranyhoz' => $valueForMoneyScore,
    ];

    if (count($dishes) === 0) {
        $error = 'Adj meg legalabb egy etelt (vesszovel elvalasztva).';
    } elseif (!$restaurantIdExisting && $newRestaurantName === '') {
        $error = 'Add meg az etterem nevet, vagy valassz a listabol.';
    } elseif (!($priceLevel >= 1 && $priceLevel <= 4)) {
        $error = 'Az arszintet 1-4 kozott add meg.';
    } else {
        foreach ($scoreChecks as $label => $v) {
            if ($v < 1 || $v > 5) {
                $error = "Adj meg 1-5 kozotti erteket a(z) {$label}.";
                break;
            }
        }
    }

    if (!$error) {
        $restaurantId = $restaurantIdExisting;
        if (!$restaurantId) {
            $restaurant = create_restaurant($newRestaurantName, $city, $address, $gkUser['id']);
            $restaurantId = $restaurant['id'];
        } elseif ($confirmedAliasFor === $restaurantId && $newRestaurantName !== '') {
            add_alias($restaurantId, $newRestaurantName);
        }

        create_review(
            $gkUser['id'], $restaurantId, $appearanceScore, $menuVarietyScore, $dishes,
            $serviceScore, $foodQualityScore, $valueForMoneyScore, $priceLevel, $comment
        );

        redirect('/etterem.php?id=' . urlencode($restaurantId));
    }
}

$pageTitle = 'Uj ertekeles — ' . GK_SITE_NAME;
require __DIR__ . '/includes/layout_top.php';
?>
<div class="gk">
  <section class="section restaurant-form-section form-section">
    <div class="form-copy">
      <span class="kicker light">ETTERMI ELMENYEK</span>
      <h2>Sajat naplo,<br>kozos tudas.</h2>
      <p>Az etteremertekeles elkulonul a vacsoracsataktol. Itt fontos az arszinvonal es az ar-ertek arany; ezek soha nem kerulnek at a fozoverseny pontozasaba.</p>
      <div class="point-types">
        <div><span>01</span><p><strong>Ertekeloi pont</strong>Az altalad kozzetett etteremertekelesek szama.</p></div>
        <div><span>02</span><p><strong>Szakacspont</strong>A vacsoracsatakban a sajat foztodre kapott pontok.</p></div>
      </div>
    </div>

    <form action="/ertekeles-uj.php" method="post" class="review-form">
      <?= csrf_field() ?>
      <div class="form-heading"><div><span>UJ ETTEREMERTEKELES</span><h3>Milyen volt?</h3></div></div>

      <label class="field-label" for="newRestaurantName">Etterem neve</label>
      <div class="smart-field">
        <span class="search-icon">⌕</span>
        <input id="newRestaurantName" name="newRestaurantName" required autocomplete="off" placeholder="Kezdd el beirni az etterem nevet…" value="<?= h($_POST['newRestaurantName'] ?? '') ?>">
        <span class="ai-chip">✦ EGYEZES-ELLENORZES</span>

        <div id="dedupe-selected-notice" style="display:none">
          <p class="success" style="margin-top:8px">
            Ertekeles ehhez a mar rogzitett etteremhez lesz hozzaadva: <strong data-selected-name></strong>.
            <button type="button" id="dedupe-cancel-selection" style="text-decoration:underline">Mas etterem / megsem</button>
          </p>
        </div>
        <div id="dedupe-suggestions" class="suggestions" style="display:none"></div>
      </div>

      <input type="hidden" id="restaurantId" name="restaurantId" value="">
      <input type="hidden" id="confirmedAliasFor" name="confirmedAliasFor" value="">

      <div id="city-address-fields" class="two-fields">
        <label><span>Varos</span><input id="city" name="city" value="<?= h($_POST['city'] ?? '') ?>"></label>
        <label><span>Cim (opcionalis)</span><input id="address" name="address" value="<?= h($_POST['address'] ?? '') ?>"></label>
      </div>

      <div class="two-fields">
        <label><span>Fogyasztott etel(ek)</span><input id="dishes" name="dishes" required placeholder="pl. borjupaprikas, turogomboc" value="<?= h($_POST['dishes'] ?? '') ?>"></label>
        <label>
          <span>Arszinvonal</span>
          <select id="priceLevel" name="priceLevel" required>
            <option value="" disabled <?= empty($_POST['priceLevel']) ? 'selected' : '' ?>>Valassz...</option>
            <?php foreach ([1 => 'Kedvezo', 2 => 'Kozepes', 3 => 'Magas', 4 => 'Premium'] as $v => $l): ?>
              <option value="<?= $v ?>" <?= (($_POST['priceLevel'] ?? '') == (string) $v) ? 'selected' : '' ?>><?= $l ?></option>
            <?php endforeach; ?>
          </select>
        </label>
      </div>

      <div class="rating-list">
        <?= render_star_rating('appearanceScore', 'Megjelenes es hangulat', 5, 'row') ?>
        <?= render_star_rating('menuVarietyScore', 'Etlap valtozatossaga', 5, 'row') ?>
        <?= render_star_rating('serviceScore', 'Kiszolgalas szinvonala', 5, 'row') ?>
        <?= render_star_rating('foodQualityScore', 'Etel minosege', 5, 'row') ?>
        <?= render_star_rating('valueForMoneyScore', 'Ar-ertek arany', 5, 'row') ?>
      </div>

      <label class="field-label" for="comment">Megjegyzes (opcionalis)</label>
      <textarea id="comment" name="comment" rows="3"><?= h($_POST['comment'] ?? '') ?></textarea>

      <?php if ($error): ?><p class="error-msg"><?= h($error) ?></p><?php endif; ?>

      <button class="button submit" type="submit">Ertekeles kozzetetele <span>+1 ertekeloi pont</span></button>
    </form>
  </section>
</div>
<?php require __DIR__ . '/includes/layout_bottom.php'; ?>
