<?php
/** @var array $data    valeurs override stockees dans coquille_config.contact */
/** @var string $sectionName */

// Fetch les valeurs WSR (concess) pour les afficher en placeholders / fallback
try {
    $dealer = (new \Coquille\ApiClient())->get('/dealer', [], 900)['data'] ?? [];
} catch (\Throwable $e) {
    $dealer = [];
}

// Helper: valeur effective (override > WSR > vide)
$eff = function (string $key, string $dealerKey = null) use ($data, $dealer) {
    $dealerKey = $dealerKey ?? $key;
    return !empty($data[$key]) ? $data[$key] : ($dealer[$dealerKey] ?? '');
};
$dealerHas = function (string $dealerKey) use ($dealer) {
    return !empty($dealer[$dealerKey]);
};
$isOverride = function (string $key) use ($data) {
    return isset($data[$key]) && trim((string)$data[$key]) !== '';
};

$hoursData = $data['hours'] ?? [
    ['day'=>'Lundi','open'=>'09:00','close'=>'18:00','closed'=>false],
    ['day'=>'Mardi','open'=>'09:00','close'=>'18:00','closed'=>false],
    ['day'=>'Mercredi','open'=>'09:00','close'=>'18:00','closed'=>false],
    ['day'=>'Jeudi','open'=>'09:00','close'=>'20:00','closed'=>false],
    ['day'=>'Vendredi','open'=>'09:00','close'=>'18:00','closed'=>false],
    ['day'=>'Samedi','open'=>'09:00','close'=>'16:00','closed'=>false],
    ['day'=>'Dimanche','open'=>'','close'=>'','closed'=>true],
];
?>
<p style="margin-bottom:1rem;"><a href="/admin/sections"><i class="fa-solid fa-arrow-left"></i> Toutes les sections</a></p>

<div class="admin-card" style="background:color-mix(in srgb, #3b82f6 8%, var(--c-card));border-color:#3b82f6;">
  <h3 style="margin-top:0;font-size:1rem;color:#1e40af;"><i class="fa-solid fa-circle-info"></i> Voici ce qui est deja affiche sur votre site</h3>
  <p style="margin:0;color:var(--c-fg-muted);font-size:.9375rem;">
    Vos coordonnees sont <strong>deja synchronisees</strong> depuis votre compte WebShowRoom. Vous n'avez besoin de remplir un champ ici que si vous voulez <strong>remplacer</strong> la valeur WSR par autre chose.
  </p>
</div>

<form method="post" action="/admin/sections/contact" class="admin-card">
  <input type="hidden" name="_csrf" value="<?= e(csrfToken()) ?>">

  <h3 style="margin-top:0;">Coordonnees</h3>

  <div class="field-group">
    <label>Adresse <?php if ($isOverride('address')): ?><span class="override-badge">Override</span><?php endif; ?></label>
    <input type="text" name="address" value="<?= attr($data['address'] ?? '') ?>" placeholder="<?= attr($dealer['address'] ?? '') ?>">
    <small><?= $dealerHas('address') ? 'Actuellement : <strong>' . e($dealer['address']) . '</strong> (WSR). Laissez vide pour conserver.' : 'Aucune adresse dans WSR — remplissez ici.' ?></small>
  </div>

  <div style="display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;">
    <div class="field-group">
      <label>Ville <?php if ($isOverride('city')): ?><span class="override-badge">Override</span><?php endif; ?></label>
      <input type="text" name="city" value="<?= attr($data['city'] ?? '') ?>" placeholder="<?= attr($dealer['city'] ?? '') ?>">
      <small><?= $dealerHas('city') ? 'WSR: <strong>' . e($dealer['city']) . '</strong>' : '' ?></small>
    </div>
    <div class="field-group">
      <label>Province</label>
      <input type="text" name="province" value="<?= attr($data['province'] ?? '') ?>" placeholder="<?= attr($dealer['province'] ?? 'QC') ?>" maxlength="2">
      <small><?= $dealerHas('province') ? 'WSR: <strong>' . e($dealer['province']) . '</strong>' : '' ?></small>
    </div>
    <div class="field-group">
      <label>Code postal</label>
      <input type="text" name="postal" value="<?= attr($data['postal'] ?? '') ?>" placeholder="<?= attr($dealer['postal'] ?? '') ?>">
      <small><?= $dealerHas('postal') ? 'WSR: <strong>' . e($dealer['postal']) . '</strong>' : '' ?></small>
    </div>
  </div>

  <div style="display:grid;grid-template-columns:1fr 1fr;gap:1rem;">
    <div class="field-group">
      <label>Telephone principal <?php if ($isOverride('phone')): ?><span class="override-badge">Override</span><?php endif; ?></label>
      <input type="tel" name="phone" value="<?= attr($data['phone'] ?? '') ?>" placeholder="<?= attr($dealer['phone'] ?? '') ?>">
      <small><?= $dealerHas('phone') ? 'WSR: <strong>' . e($dealer['phone']) . '</strong>' : '' ?></small>
    </div>
    <div class="field-group">
      <label>Telephone alternatif</label>
      <input type="tel" name="phone_alt" value="<?= attr($data['phone_alt'] ?? '') ?>" placeholder="optionnel">
      <small>Aucun dans WSR — definir ici si applicable.</small>
    </div>
  </div>

  <div class="field-group">
    <label>Courriel <?php if ($isOverride('email')): ?><span class="override-badge">Override</span><?php endif; ?></label>
    <input type="email" name="email" value="<?= attr($data['email'] ?? '') ?>" placeholder="<?= attr($dealer['email'] ?? '') ?>">
    <small><?= $dealerHas('email') ? 'WSR: <strong>' . e($dealer['email']) . '</strong>' : '' ?></small>
  </div>

  <hr style="margin:1.5rem 0;border:0;border-top:1px solid var(--c-border);">

  <h3>Heures d'ouverture</h3>
  <p style="color:var(--c-fg-muted);font-size:.9375rem;">Les heures ne sont pas dans WSR — configurez-les ici. Affichees dans le footer et la page Contact.</p>

  <div id="hours-editor" style="display:grid;gap:.5rem;">
    <?php foreach ($hoursData as $i => $h): ?>
      <div class="hours-row" style="display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.5rem;align-items:center;">
        <input type="hidden" name="__hours_idx[]" value="<?= $i ?>">
        <input type="text" name="__hours_day[]" value="<?= attr($h['day'] ?? '') ?>" placeholder="Jour">
        <input type="time" name="__hours_open[]" value="<?= attr($h['open'] ?? '') ?>">
        <input type="time" name="__hours_close[]" value="<?= attr($h['close'] ?? '') ?>">
        <label style="display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--c-fg-muted);">
          <input type="checkbox" name="__hours_closed[]" value="<?= $i ?>" <?= !empty($h['closed']) ? 'checked' : '' ?>>
          Fermé
        </label>
      </div>
    <?php endforeach; ?>
  </div>

  <hr style="margin:1.5rem 0;border:0;border-top:1px solid var(--c-border);">

  <h3>Carte Google Maps</h3>
  <?php
    $addressForMap = $eff('address') . ', ' . $eff('city') . ' ' . $eff('province') . ' ' . $eff('postal');
    $addressForMap = trim($addressForMap, ', ');
    $autoMapUrl = $addressForMap ? 'https://maps.google.com/maps?q=' . urlencode($addressForMap) . '&output=embed' : '';
  ?>
  <div class="field-group">
    <label>URL d'incrustation (laisser vide pour auto-genere depuis l'adresse)</label>
    <input type="url" name="map_embed_url" value="<?= attr($data['map_embed_url'] ?? '') ?>" placeholder="<?= attr($autoMapUrl) ?>">
    <small>
      <?php if ($autoMapUrl): ?>
        Auto-genere depuis : <code><?= e($addressForMap) ?></code>.
        Pour un rendu plus joli, utilisez <a href="https://www.google.com/maps" target="_blank">Google Maps</a> → Partager → Integrer une carte.
      <?php else: ?>
        Renseignez d'abord l'adresse ci-dessus, puis sauvegardez.
      <?php endif; ?>
    </small>
  </div>

  <button type="submit" class="btn btn-primary"><i class="fa-solid fa-floppy-disk"></i> Sauvegarder</button>
</form>

<style>
.override-badge {
  margin-left: .5rem;
  font-size: .6875rem;
  padding: .125rem .5rem;
  background: color-mix(in srgb, #f59e0b 20%, var(--c-bg));
  color: #b45309;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.field-group small strong { color: var(--c-fg); }
</style>

<script>
// Soumission: encoder les hours en JSON
document.querySelector('form[action="/admin/sections/contact"]').addEventListener('submit', (ev) => {
  const days = [...document.querySelectorAll('input[name="__hours_day[]"]')].map(i => i.value);
  const opens = [...document.querySelectorAll('input[name="__hours_open[]"]')].map(i => i.value);
  const closes = [...document.querySelectorAll('input[name="__hours_close[]"]')].map(i => i.value);
  const closedSet = new Set([...document.querySelectorAll('input[name="__hours_closed[]"]:checked')].map(i => parseInt(i.value, 10)));
  const hours = days.map((day, i) => ({ day, open: opens[i] || '', close: closes[i] || '', closed: closedSet.has(i) }));
  const input = document.createElement('input');
  input.type = 'hidden';
  input.name = '__json_hours';
  input.value = JSON.stringify(hours);
  ev.target.appendChild(input);
});
</script>
