{{--
    SATIŞ KÜNYESİ — anlaşma alanları, ortak defter (ledger) tasarımıyla.

    Müşteri kartındaki Künye paneliyle AYNI kalıp: her alan tek satır, solda
    küçük etiket, sağda değer, hover'da kopyala/düzenle; düzenleme yerinde
    açılır ve satır yüksekliği değişmez.

    TEK FARK kaydetme yolu: bu kart alan alan PATCH atmaz. Satış kartının kendi
    debounce'lu otomatik kaydı (qcSave) tüm alanları TEK istekte gönderir; iki
    yazar aynı kaydı ezmesin diye satırlar 'target' ile gerçek form alanına
    yazar (bkz. components/quick-view/ledger-ui → data-target). Gerçek alanlar
    kartın altındaki gizli blokta durur ve değerin tek kaynağıdır.

    Beklenen: $sale (null olabilir — yeni satış), $productTypes, $agents
--}}
@php
    /** Seçim listesinde değerin etiketini bulur. */
    $qcOptLabel = function (array $opts, $value) {
        foreach ($opts as $o) {
            if ((string) $o['value'] === (string) $value) return $o['label'] === '—' ? '' : $o['label'];
        }
        return '';
    };

    $qcTypeOpts = collect([['value' => '', 'label' => '—']])
        ->concat($productTypes->map(fn ($pt) => ['value' => (string) $pt->id, 'label' => $pt->name]))
        ->values()->all();

    $qcAgentOpts = collect([['value' => '', 'label' => '—']])
        ->concat($agents->map(fn ($a) => ['value' => (string) $a->id, 'label' => $a->full_name]))
        ->values()->all();

    // Yeni satışta sorumlu varsayılanı oturumu açan kullanıcıdır (eski form da
    // böyle davranıyordu); gizli alanla aynı değer okunsun diye burada da aynı kural.
    $qcAgentVal = (string) ($sale?->assigned_to ?? auth()->id());
    $qcTypeVal = (string) ($sale?->product_type_id ?? '');

    $qcDmy = fn ($d) => $d ? \Carbon\Carbon::parse($d)->format('d.m.Y') : '';
    $qcStart = $sd('start_date') ?: date('Y-m-d');
    $qcEnd = $sd('end_date');

    /** Hedefe (gerçek form alanına) yazan tek satır tanımı. */
    $qcRow = function (string $label, string $target, $value, ?string $text = null, array $o = []) {
        return [
            'label' => $label,
            // field: sunucuya gitmez, satırı adlandırır (kopyalama/etiket için)
            'field' => ltrim($target, '#'),
            'target' => $target,
            'type' => $o['type'] ?? 'text',
            'value' => $value === null ? '' : (string) $value,
            'text' => $text === null ? ($value === null ? '' : (string) $value) : $text,
            'options' => $o['options'] ?? null,
            'mono' => $o['mono'] ?? false,
            'ph' => $o['ph'] ?? null,
            'suffix' => $o['suffix'] ?? null,
            'dec' => $o['dec'] ?? null,
            'attrs' => $o['attrs'] ?? null,
        ];
    };
@endphp

@include('components.quick-view.ledger-card', ['card' => [
    'title' => 'Anlaşma Künyesi',
    'icon' => 'fa-handshake',
    'foldable' => true,
    'sections' => [
        [
            'title' => 'Anlaşma',
            'icon' => 'fa-file-signature',
            'rows' => [
                $qcRow('Satış Başlığı', '#qc-title', $sale?->title, null, ['ph' => 'Örn. Kapadokya Balon Turu']),
                $qcRow('Başlangıç Tarihi', '#qc-start-date', $qcStart, $qcDmy($qcStart), ['type' => 'date', 'mono' => true]),
                $qcRow('Bitiş Tarihi', '#qc-end-date', $qcEnd, $qcDmy($qcEnd), ['type' => 'date', 'mono' => true, 'ph' => 'Tek günlükse boş bırakın']),
                $qcRow('Hizmet Türü', '#qc-product-type', $qcTypeVal, $qcOptLabel($qcTypeOpts, $qcTypeVal), ['type' => 'select', 'options' => $qcTypeOpts, 'ph' => 'Seçin']),
                $qcRow('Sorumlu Personel', '#qc-agent', $qcAgentVal, $qcOptLabel($qcAgentOpts, $qcAgentVal), ['type' => 'select', 'options' => $qcAgentOpts, 'ph' => 'Atanmamış']),
            ],
        ],
        [
            'title' => 'Buluşma ve Ulaşım',
            'icon' => 'fa-location-dot',
            'rows' => [
                $qcRow('Alış Yeri', '#qc-pickup', $sale?->pickup_location, null, ['ph' => 'Otel adı veya adres']),
                $qcRow('Uçuş Kodu', '#qc-flight', $sale?->flight_number, null, ['mono' => true, 'ph' => 'Örn. TK1903']),
            ],
        ],
    ],
]])
