<% layout('layouts/main') %>
<% const adminBase = typeof adminBaseUrl !== 'undefined' ? adminBaseUrl : '/admin'; %>
<% const quoteMailSubject = `Votre devis ${quote.quote_number} - ${currentCompany ? currentCompany.name : 'Lustra'}`; %>
<% const quoteMailBody = `Bonjour,\n\nVotre devis ${quote.quote_number} est disponible. Vous le trouverez en pièce jointe de cet email.\n\nDepuis votre espace client, vous pouvez consulter le devis, télécharger le PDF, puis l’accepter ou le refuser.\n\nAvec nos meilleures salutations`; %>
<div class="app-shell">
  <%- partial('partials/admin-nav') %>
  <section class="content invoice-page">
    <div class="page-head">
      <div><p class="eyebrow">Devis</p><h1><%= quote.quote_number %></h1></div>
      <span class="badge"><%= ui.label(quote.status) %></span>
    </div>

    <div class="panel">
      <div class="detail-grid compact">
        <div class="detail-item"><span>Client</span><strong><%= quote.first_name %> <%= quote.last_name %></strong></div>
        <div class="detail-item"><span>Email</span><strong><%= quote.email %></strong></div>
        <div class="detail-item"><span>Total</span><strong><%= ui.money(quote.total) %></strong></div>
        <div class="detail-item"><span>TVA</span><strong><%= quote.vat_label || 'TVA non applicable' %></strong></div>
      </div>
      <div class="actions inline-actions">
        <a class="button secondary" href="/quotes/<%= quote.id %>/pdf">Télécharger le PDF</a>
        <form method="post" action="<%= adminBase %>/devis/<%= quote.id %>/regenerer-pdf"><input type="hidden" name="_csrf" value="<%= csrfToken %>"><button class="secondary">Régénérer le PDF</button></form>
        <form method="post" action="<%= adminBase %>/devis/<%= quote.id %>/envoyer" data-email-review-form data-email-title="Envoyer le devis" data-default-to="<%= quote.email %>" data-default-subject="<%= quoteMailSubject %>" data-default-body="<%= quoteMailBody %>" data-attachment-url="/quotes/<%= quote.id %>/pdf" data-attachment-label="<%= quote.quote_number %>.pdf">
          <input type="hidden" name="_csrf" value="<%= csrfToken %>">
          <input type="hidden" name="email_to">
          <input type="hidden" name="email_subject">
          <input type="hidden" name="email_body">
          <button>Envoyer au client</button>
        </form>
      </div>
    </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/<%= quote.id %>" class="invoice-editor">
      <input type="hidden" name="_csrf" value="<%= csrfToken %>">

      <section class="invoice-section">
        <div class="section-title"><span>1</span><h2>Client & prestation</h2></div>
        <label>Client<select name="user_id" required><% clients.forEach(c=>{ %><option value="<%= c.id %>" <%= quote.user_id===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="<%= quote.service_type || '' %>" required></label>
          <label>Statut<select name="status"><% ['brouillon','envoye','accepte','refuse','expire'].forEach(s=>{ %><option value="<%= s %>" <%= quote.status===s?'selected':'' %>><%= ui.label(s) %></option><% }) %></select></label>
        </div>
        <label>Adresse d’intervention<input name="intervention_address" value="<%= quote.intervention_address || '' %>"></label>
        <div class="form-grid two">
          <label>Date proposée<input type="date" name="proposed_date" value="<%= ui.dateInput(quote.proposed_date) %>"></label>
          <label>Valable jusqu’au<input type="date" name="valid_until" value="<%= ui.dateInput(quote.valid_until) %>"></label>
        </div>
        <label>Description<textarea name="description"><%= quote.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 existingItems = items.length ? items : [{ description: '', quantity: 1, unit: 'forfait', unit_price: '' }]; %>
          <% existingItems.forEach(item => { %>
            <div class="line-row invoice-line" data-invoice-line>
              <label class="mini-field"><span>Description</span><input name="item_description" value="<%= item.description || '' %>" placeholder="Description"></label>
              <label class="mini-field"><span data-quantity-label>Quantité</span><input name="item_quantity" value="<%= item.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 %>" <%= (item.unit || 'forfait') === value ? 'selected' : '' %>><%= label %></option><% }) %>
              </select></label>
              <label class="mini-field"><span data-price-label>Prix unitaire</span><input name="item_price" value="<%= item.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, acompte & notes</h2></div>
        <div class="form-grid two">
          <label class="check premium-check"><input type="checkbox" name="vat_enabled" <%= quote.vat_enabled ? 'checked' : '' %>><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="<%= quote.vat_rate || app.tvaRate %>" inputmode="decimal"></label>
        </div>
        <label>Acompte demandé<input name="deposit_amount" value="<%= quote.deposit_amount || 0 %>" inputmode="decimal"></label>
        <label>Conditions<textarea name="conditions"><%= quote.conditions || '' %></textarea></label>
        <label>Notes visibles sur le PDF<textarea name="notes"><%= quote.notes || '' %></textarea></label>
        <button>Enregistrer et régénérer le PDF</button>
      </section>
    </form>

    <div class="actions action-stack">
      <form method="post" action="<%= adminBase %>/devis/<%= quote.id %>/accepter"><input type="hidden" name="_csrf" value="<%= csrfToken %>"><button class="secondary">Accepter manuellement</button></form>
      <form method="post" action="<%= adminBase %>/devis/<%= quote.id %>/refuser"><input type="hidden" name="_csrf" value="<%= csrfToken %>"><button class="secondary">Refuser</button></form>
      <form method="post" action="<%= adminBase %>/devis/<%= quote.id %>/intervention" class="inline-date-action quote-to-intervention">
        <input type="hidden" name="_csrf" value="<%= csrfToken %>">
        <input type="datetime-local" name="starts_at" aria-label="Date et heure de début">
        <% if (typeof staff !== 'undefined' && staff.length) { %>
          <select name="assigned_user_ids" multiple size="<%= Math.min(staff.length, 4) %>" aria-label="Équipe assignée">
            <% staff.forEach(member => { %><option value="<%= member.id %>"><%= member.first_name %> <%= member.last_name %> · <%= member.role === 'admin' ? 'Admin' : 'Employé' %></option><% }) %>
          </select>
        <% } %>
        <button>Transformer en intervention</button>
      </form>
      <form method="post" action="<%= adminBase %>/devis/<%= quote.id %>/facture"><input type="hidden" name="_csrf" value="<%= csrfToken %>"><button>Transformer en facture</button></form>
    </div>
  </section>
</div>
