<?php
/** @var array $lojas @var bool $salvo @var string $erro */
$e = fn($v) => htmlspecialchars((string)$v, ENT_QUOTES);

/** Renderiza o formulário de uma loja (edição) ou em branco (nova). */
$formLoja = function (string $id, array $l) use ($e) {
    $novo = ($id === '');
    ?>
    <form method="post" action="/configurar/lojas/salvar" class="cfgloja-form"
          style="background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.2rem;margin-bottom:1rem;box-shadow:0 1px 3px rgba(0,0,0,.05)">
        <div style="display:flex;align-items:center;gap:.5rem;margin-bottom:.7rem">
            <i class="bi bi-shop" style="color:#3b82f6;font-size:1.1rem"></i>
            <strong style="font-size:1rem;color:#1e293b"><?= $novo ? 'Nova loja' : $e($l['nome'] ?? $id) ?></strong>
            <?php if (!empty($l['principal'])): ?><span style="background:#dcfce7;color:#166534;border-radius:10px;padding:.1rem .5rem;font-size:.68rem;font-weight:700">PRINCIPAL</span><?php endif; ?>
        </div>
        <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem">
            <label style="font-size:.74rem;color:#475569">ID único
                <input name="id" value="<?= $e($id) ?>" <?= $novo ? '' : 'readonly' ?> placeholder="ex: ach10" required
                       style="width:100%;padding:.4rem;border:1px solid #cbd5e1;border-radius:6px;<?= $novo ? '' : 'background:#f1f5f9' ?>">
            </label>
            <label style="font-size:.74rem;color:#475569">Nome (exibido)
                <input name="nome" value="<?= $e($l['nome'] ?? '') ?>" placeholder="Achadinhos 10" style="width:100%;padding:.4rem;border:1px solid #cbd5e1;border-radius:6px">
            </label>
            <label style="font-size:.74rem;color:#475569">Host / IP
                <input name="host" value="<?= $e($l['host'] ?? 'localhost') ?>" placeholder="localhost ou IP/VPN" style="width:100%;padding:.4rem;border:1px solid #cbd5e1;border-radius:6px">
            </label>
            <label style="font-size:.74rem;color:#475569">Porta
                <input name="port" value="<?= $e($l['port'] ?? 3050) ?>" style="width:100%;padding:.4rem;border:1px solid #cbd5e1;border-radius:6px">
            </label>
            <label style="font-size:.74rem;color:#475569;grid-column:1/-1">Caminho do banco (.FDB)
                <input name="database" value="<?= $e($l['database'] ?? '') ?>" placeholder="C:\Banco\loja\BANCO.FDB" required style="width:100%;padding:.4rem;border:1px solid #cbd5e1;border-radius:6px;font-family:monospace">
            </label>
            <label style="font-size:.74rem;color:#475569">Usuário Firebird
                <input name="username" value="<?= $e($l['username'] ?? 'SYSDBA') ?>" style="width:100%;padding:.4rem;border:1px solid #cbd5e1;border-radius:6px">
            </label>
            <label style="font-size:.74rem;color:#475569">Senha Firebird
                <input name="password" type="text" value="<?= $e($l['password'] ?? 'masterkey') ?>" style="width:100%;padding:.4rem;border:1px solid #cbd5e1;border-radius:6px">
            </label>
            <label style="font-size:.74rem;color:#475569">Cód. empresa
                <input name="cod_empresa" value="<?= $e($l['cod_empresa'] ?? '') ?>" placeholder="ex: 2" style="width:100%;padding:.4rem;border:1px solid #cbd5e1;border-radius:6px">
            </label>
            <label style="font-size:.74rem;color:#475569">Charset
                <input name="charset" value="<?= $e($l['charset'] ?? 'WIN1252') ?>" style="width:100%;padding:.4rem;border:1px solid #cbd5e1;border-radius:6px">
            </label>
        </div>
        <div style="display:flex;gap:1.2rem;margin:.7rem 0;flex-wrap:wrap">
            <label style="font-size:.82rem;color:#334155"><input type="checkbox" name="leitor" value="1" <?= !empty($l['leitor']) ? 'checked' : '' ?>> Leitor opera nesta loja (banco local)</label>
            <label style="font-size:.82rem;color:#334155"><input type="checkbox" name="principal" value="1" <?= !empty($l['principal']) ? 'checked' : '' ?>> Loja principal (padrão ao abrir)</label>
        </div>
        <div style="display:flex;gap:.5rem;align-items:center;flex-wrap:wrap">
            <button type="button" onclick="testarLoja(this)" style="background:#eff6ff;border:1px solid #3b82f6;color:#1d4ed8;border-radius:8px;padding:.45rem 1rem;font-size:.85rem;cursor:pointer"><i class="bi bi-plug"></i> Testar conexão</button>
            <button type="submit" style="background:#3b82f6;border:none;color:#fff;border-radius:8px;padding:.45rem 1.2rem;font-size:.85rem;font-weight:600;cursor:pointer"><i class="bi bi-check-lg"></i> Salvar</button>
            <?php if (!$novo): ?>
            <button type="submit" formaction="/configurar/lojas/remover" onclick="return confirm('Remover a loja <?= $e($l['nome'] ?? $id) ?>?')" style="background:transparent;border:1px solid #ef4444;color:#dc2626;border-radius:8px;padding:.45rem 1rem;font-size:.85rem;cursor:pointer"><i class="bi bi-trash"></i> Remover</button>
            <?php endif; ?>
            <span class="cfgloja-res" style="font-size:.82rem"></span>
        </div>
    </form>
    <?php
};
?>
<div style="padding:1.25rem;max-width:900px;margin:0 auto;color:#0f172a">
    <div style="display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem">
        <h1 style="font-size:1.4rem;font-weight:800;margin:0;color:#1e293b"><i class="bi bi-buildings" style="color:#3b82f6"></i> Configurar Lojas</h1>
    </div>
    <p style="color:#64748b;font-size:.85rem;margin:0 0 1rem">
        Cada loja vira uma opção no seletor do topo. <strong>Sem nenhuma loja aqui, o sistema roda single-loja</strong> (usa a configuração padrão do banco). Marque uma como <strong>principal</strong>.
    </p>

    <?php if ($salvo): ?>
    <div style="background:#dcfce7;border:1px solid #16a34a;color:#166534;border-radius:8px;padding:.6rem 1rem;margin-bottom:1rem;font-size:.9rem"><i class="bi bi-check-circle"></i> Configuração salva!</div>
    <?php endif; ?>
    <?php if ($erro): ?>
    <div style="background:#fee2e2;border:1px solid #dc2626;color:#991b1b;border-radius:8px;padding:.6rem 1rem;margin-bottom:1rem;font-size:.9rem"><i class="bi bi-exclamation-triangle"></i> <?= $e($erro) ?></div>
    <?php endif; ?>

    <?php foreach ($lojas as $id => $l): $formLoja((string)$id, (array)$l); endforeach; ?>

    <h2 style="font-size:1rem;color:#475569;margin:1.5rem 0 .6rem"><i class="bi bi-plus-circle"></i> Adicionar loja</h2>
    <?php $formLoja('', []); ?>
</div>

<script>
function testarLoja(btn){
    var form = btn.closest('form');
    var res  = form.querySelector('.cfgloja-res');
    res.textContent = 'Testando…'; res.style.color = '#64748b';
    var fd = new FormData(form);
    fetch('/configurar/lojas/testar', {method:'POST', credentials:'same-origin', body:fd})
        .then(function(r){return r.json();})
        .then(function(d){
            res.textContent = (d.ok ? '✓ ' : '✗ ') + d.msg;
            res.style.color = d.ok ? '#16a34a' : '#dc2626';
        })
        .catch(function(e){ res.textContent = '✗ ' + e.message; res.style.color = '#dc2626'; });
}
</script>
