<%- include('partials/header') %>
<h1>Paramètres</h1>

<% if (testResult) { %><div class="alert alert-<%= testResult.ok ? 'success' : 'error' %>"><%= testResult.msg %></div><% } %>

<div class="grid2">
<form method="post" action="<%= base %>/settings" class="card form">
  <input type="hidden" name="_csrf" value="<%= csrf %>">
  <h2>Connexion PrestaShop</h2>
  <label>URL de la boutique
    <input name="ps_url" value="<%= settings.ps_url %>" placeholder="https://www.maboutique.fr" type="url">
    <small>L’API sera appelée sur <code>/api</code> (réécriture d’URL activée dans PrestaShop).</small>
  </label>
  <label>Clé API Webservice
    <input name="ps_key" value="<%= settings.ps_key %>" autocomplete="off" placeholder="32 caractères">
    <small>PrestaShop → Paramètres avancés → Webservice : activer, créer une clé avec les droits <strong>GET, PUT et PATCH</strong> sur <code>products</code> et <code>combinations</code>.</small>
  </label>
  <div class="row">
    <label>Authentification
      <select name="ps_auth">
        <option value="header" <%= settings.ps_auth === 'header' ? 'selected' : '' %>>En-tête HTTP (recommandé)</option>
        <option value="query" <%= settings.ps_auth === 'query' ? 'selected' : '' %>>Paramètre ws_key dans l’URL</option>
      </select>
      <small>Passez à « ws_key » si le test renvoie une erreur 401.</small>
    </label>
    <label>Méthode d’écriture
      <select name="ps_method">
        <option value="patch" <%= settings.ps_method === 'patch' ? 'selected' : '' %>>PATCH (rapide, repli auto)</option>
        <option value="put" <%= settings.ps_method === 'put' ? 'selected' : '' %>>GET + PUT (compatible)</option>
      </select>
    </label>
    <label>Requêtes simultanées
      <input type="number" name="ps_concurrency" min="1" max="10" value="<%= settings.ps_concurrency %>">
    </label>
  </div>

  <h2>Calcul des prix</h2>
  <div class="row">
    <label>Taux de TVA (%)
      <input name="tax_rate" value="<%= settings.tax_rate %>" inputmode="decimal">
      <small>Sert à l’arrondi et à l’affichage TTC. PrestaShop reçoit le prix HT.</small>
    </label>
    <label>Arrondi
      <select name="rounding">
        <% Object.entries(ROUNDING_MODES).forEach(([k, v]) => { %><option value="<%= k %>" <%= settings.rounding === k ? 'selected' : '' %>><%= v %></option><% }) %>
      </select>
    </label>
  </div>
  <div class="row">
    <label>Article chez plusieurs fournisseurs
      <select name="strategy">
        <option value="cheapest" <%= settings.strategy === 'cheapest' ? 'selected' : '' %>>Prendre le moins cher</option>
        <option value="priority" <%= settings.strategy === 'priority' ? 'selected' : '' %>>Prendre le fournisseur prioritaire</option>
      </select>
    </label>
    <label>Écart minimal pour mettre à jour (€ HT)
      <input name="min_change" value="<%= settings.min_change %>" inputmode="decimal">
    </label>
  </div>
  <label class="check"><input type="checkbox" name="update_wholesale" value="1" <%= settings.update_wholesale === '1' ? 'checked' : '' %>> Mettre aussi à jour le prix d’achat (wholesale_price) dans PrestaShop</label>
  <div class="form-actions"><button class="btn btn-primary">Enregistrer</button></div>
</form>

<div>
  <section class="card form">
    <h2>Tests</h2>
    <form method="post" action="<%= base %>/settings/test">
      <input type="hidden" name="_csrf" value="<%= csrf %>">
      <button class="btn">Tester la connexion</button>
    </form>
    <form method="post" action="<%= base %>/settings/test-write" class="row inline">
      <input type="hidden" name="_csrf" value="<%= csrf %>">
      <label>ID produit <input type="number" name="id_product" min="1" required></label>
      <button class="btn">Tester l’écriture</button>
    </form>
    <p class="small muted">Le test d’écriture réenvoie le prix actuel du produit sans le modifier et vérifie que rien d’autre n’a changé. Faites-le sur un produit de test avant le premier envoi.</p>
  </section>

  <form method="post" action="<%= base %>/settings/password" class="card form">
    <input type="hidden" name="_csrf" value="<%= csrf %>">
    <h2>Mon mot de passe</h2>
    <label>Mot de passe actuel <input type="password" name="current_password" required autocomplete="current-password"></label>
    <label>Nouveau mot de passe <input type="password" name="password" minlength="10" required autocomplete="new-password"></label>
    <label>Confirmation <input type="password" name="password2" minlength="10" required autocomplete="new-password"></label>
    <button class="btn">Changer</button>
  </form>

  <section class="card form">
    <h2>Utilisateurs</h2>
    <table class="table">
      <% users.forEach(u => { %>
        <tr>
          <td><%= u.username %></td><td class="small muted"><%= u.created_at %></td>
          <td class="actions"><% if (u.id !== user.id) { %>
            <form method="post" action="<%= base %>/settings/users/<%= u.id %>/delete" data-confirm="Supprimer <%= u.username %> ?">
              <input type="hidden" name="_csrf" value="<%= csrf %>"><button class="btn btn-sm btn-danger-ghost">Supprimer</button>
            </form>
          <% } %></td>
        </tr>
      <% }) %>
    </table>
    <form method="post" action="<%= base %>/settings/users">
      <input type="hidden" name="_csrf" value="<%= csrf %>">
      <div class="row">
        <label>Identifiant <input name="username" required autocomplete="off"></label>
        <label>Mot de passe <input type="password" name="password" minlength="10" required autocomplete="new-password"></label>
      </div>
      <button class="btn">Ajouter</button>
    </form>
  </section>
</div>
</div>
<%- include('partials/footer') %>
