<% layout('layouts/main') %>
<% const adminBase = typeof adminBaseUrl !== 'undefined' ? adminBaseUrl : '/admin'; %>
<% const assistantSuggestion = typeof suggestion !== 'undefined' ? suggestion : null; %>
<div class="app-shell">
  <%- partial('partials/admin-nav') %>
  <section class="content invoice-page">
    <div class="page-head">
      <div>
        <p class="eyebrow"><%= request ? 'Devis lié à une demande' : 'Devis' %></p>
        <h1>Créer un devis</h1>
      </div>
      <% if (request) { %><span class="badge">Demande #<%= request.id %></span><% } %>
    </div>
    <% if (request) { %>
      <div class="panel linked-action">
        <div>
          <h2><%= request.service_type %></h2>
          <p>Ce devis sera lié à la demande. Lors de l’envoi, le client recevra le PDF par email et la demande passera en “Devis envoyé”.</p>
        </div>
        <a class="button secondary" href="<%= adminBase %>/demandes/<%= request.id %>">Retour à la demande</a>
      </div>
    <% } %>
    <% if (assistantSuggestion) { %>
      <div class="panel quote-assistant-panel">
        <div>
          <p class="eyebrow">Assistant devis</p>
          <h2>Proposition automatique à vérifier</h2>
          <p><%= assistantSuggestion.summary %></p>
        </div>
        <div class="assistant-mini-lines">
          <% assistantSuggestion.items.forEach((line) => { %>
            <span><strong><%= line.description %></strong><small><%= line.quantity %> <%= line.unit %> × CHF <%= Number(line.unit_price).toFixed(2) %></small></span>
          <% }) %>
        </div>
        <p class="field-help">Les prix sont indicatifs et restent modifiables avant création du devis.</p>
      </div>
    <% } %>
    <% const unitOptions = [
      ['forfait', 'Forfait'],
      ['heure', 'Heures'],
      ['m2', 'm²'],
      ['piece', 'Pièce'],
      ['fenetre', 'Fenêtre'],
      ['store', 'Store'],
      ['jour', 'Jour'],
      ['deplacement', 'Déplacement']
    ]; %>
    <form method="post" action="<%= adminBase %>/devis" class="invoice-editor">
      <input type="hidden" name="_csrf" value="<%= csrfToken %>">
      <input type="hidden" name="quote_request_id" value="<%= request ? request.id : '' %>">

      <section class="invoice-section">
        <div class="section-title"><span>1</span><h2>Client & prestation</h2></div>
        <label>Modèle de devis<select data-quote-template>
          <option value="">Partir d’un devis vide</option>
          <option value="forfait">Nettoyage au forfait</option>
          <option value="horaire">Nettoyage horaire</option>
          <option value="projet">Nettoyage après travaux</option>
        </select></label>
        <label>Client<select name="user_id" required><% clients.forEach(c=>{ %><option value="<%= c.id %>" <%= (request && request.user_id===c.id) || String(selectedClientId || '') === String(c.id) ? 'selected' : '' %>><%= c.first_name %> <%= c.last_name %> - <%= c.email %></option><% }) %></select></label>
        <div class="form-grid two">
          <label>Prestation<input name="service_type" value="<%= assistantSuggestion ? assistantSuggestion.serviceType : (request ? request.service_type : '') %>" placeholder="Ex. Nettoyage régulier, fin de bail, vitres, conciergerie" required></label>
          <label>Adresse d’intervention<input name="intervention_address" value="<%= request ? request.address : '' %>" placeholder="Adresse complète"></label>
        </div>
        <div class="form-grid two">
          <label>Date proposée<input type="date" name="proposed_date"></label>
          <label>Valable jusqu’au<input type="date" name="valid_until"></label>
        </div>
        <label>Description<textarea name="description" placeholder="Résumé clair de la prestation proposée"><%= assistantSuggestion ? assistantSuggestion.description : '' %></textarea></label>
      </section>

      <section class="invoice-section">
        <div class="section-title"><span>2</span><h2>Lignes du devis</h2></div>
        <p class="field-help">Choisissez l’unité adaptée. Pour les heures, vous pouvez saisir par exemple 1h35, 1:35 ou 1.5.</p>
        <% if (typeof assistantCatalog !== 'undefined' && assistantCatalog.length) { %>
          <div class="quote-line-library">
            <% assistantCatalog.filter(item => item.enabled).forEach((item) => { %>
              <button type="button" class="secondary small" data-line-preset data-description="<%= item.label %>" data-quantity="<%= item.default_quantity || 1 %>" data-unit="<%= item.unit %>" data-price="<%= item.price || 0 %>"><%= item.label %></button>
            <% }) %>
          </div>
        <% } %>
        <div class="invoice-lines-head"><span>Description</span><span>Quantité</span><span>Unité</span><span>Prix unitaire</span><span>Total</span><span></span></div>
        <div id="quote-lines" class="invoice-lines">
          <% const suggestedLines = assistantSuggestion && assistantSuggestion.items && assistantSuggestion.items.length ? assistantSuggestion.items : [{ description: '', quantity: 1, unit: 'forfait', unit_price: '' }]; %>
          <% suggestedLines.forEach((line) => { %>
            <div class="line-row invoice-line" data-invoice-line>
              <label class="mini-field"><span>Description</span><input name="item_description" value="<%= line.description || '' %>" placeholder="Ex. Préparation, main-d’œuvre, matériel"></label>
              <label class="mini-field"><span data-quantity-label>Quantité</span><input name="item_quantity" value="<%= line.quantity || 1 %>" placeholder="1" inputmode="decimal" data-line-quantity></label>
              <label class="mini-field"><span>Unité</span><select name="item_unit" data-line-unit>
                <% unitOptions.forEach(([value, label]) => { %><option value="<%= value %>" <%= line.unit === value ? 'selected' : '' %>><%= label %></option><% }) %>
              </select></label>
              <label class="mini-field"><span data-price-label>Prix unitaire</span><input name="item_price" value="<%= line.unit_price || '' %>" placeholder="Prix" inputmode="decimal" data-line-price></label>
              <div class="line-total"><span>Total</span><strong data-line-total>CHF 0.00</strong></div>
              <button type="button" class="icon-danger" data-remove-line aria-label="Supprimer cette ligne">×</button>
            </div>
          <% }) %>
        </div>
        <button type="button" class="secondary" data-add-line="#quote-lines">Ajouter une ligne</button>
      </section>

      <section class="invoice-section">
        <div class="section-title"><span>3</span><h2>TVA & conditions</h2></div>
        <div class="form-grid two">
          <label class="check premium-check"><input type="checkbox" name="vat_enabled"><span><strong>TVA active</strong><small>Le taux est appliqué au total des lignes.</small></span></label>
          <label>Taux TVA<input name="vat_rate" value="<%= app.tvaRate %>" inputmode="decimal"></label>
        </div>
        <label>Acompte demandé<input name="deposit_amount" value="0" inputmode="decimal"></label>
        <label>Conditions<textarea name="conditions" placeholder="Conditions contractuelles du devis"></textarea></label>
        <label>Notes visibles sur le PDF<textarea name="notes" placeholder="Ex. Délais, accès, exclusions, validité de l’offre ou informations utiles au client."><%= assistantSuggestion ? assistantSuggestion.notes : '' %></textarea></label>
        <button>Créer le devis</button>
      </section>
    </form>
  </section>
</div>
