b2in/resources/views/livewire/products/create.blade.php
2026-01-23 17:33:10 +01:00

794 lines
45 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use function Livewire\Volt\{state, mount};
state([
'product' => [],
'activeTab' => 'basis'
]);
mount(function () {
// Initialisierung der Dummy-Daten
});
?>
<div class="space-y-6">
{{-- Header --}}
<div class="flex items-center justify-between">
<div>
<flux:heading size="xl">{{ __('Produkte') }} (in Entwicklung)</flux:heading>
<flux:subheading>{{ __('Erstellen Sie ein neues Produkt') }}</flux:subheading>
</div>
<div class="flex items-center gap-2">
@svg('heroicon-o-cube', 'w-6 h-6 text-accent-600 dark:text-accent-400')
<span class="text-sm font-medium text-zinc-700 dark:text-zinc-300">{{ __('Neues Produkt anlegen') }}</span>
</div>
</div>
<form wire:submit="save" class="space-y-6">
{{-- Tab Navigation --}}
<flux:tabs wire:model.live="activeTab" variant="segmented">
<flux:tab name="basis" icon="identification">{{ __('Basis') }}</flux:tab>
<flux:tab name="bilder" icon="photo">{{ __('Bilder') }}</flux:tab>
<flux:tab name="physisch" icon="cube">{{ __('Physisch') }}</flux:tab>
<flux:tab name="material" icon="beaker">{{ __('Material & Herkunft') }}</flux:tab>
<flux:tab name="kommerziell" icon="currency-euro">{{ __('Kommerziell') }}</flux:tab>
<flux:tab name="verwaltung" icon="cog">{{ __('Zuordnung & Verwaltung') }}</flux:tab>
</flux:tabs>
{{-- TAB 1: BASIS - Identität & Varianten --}}
@if($activeTab === 'basis')
<div class="space-y-8">
{{-- 1. Identität & Katalog --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('1. Identität & Katalog') }}</flux:heading>
<flux:field>
<flux:label>{{ __('B2in-Artikelnummer (intern)') }} <span class="text-red-500">*</span></flux:label>
<flux:input wire:model="product.b2in_article_number" placeholder="B2IN-000471" />
<flux:description>{{ __('Fortlaufende Nummer (vom System vergeben)') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Lieferanten-Artikelnummer') }} <span class="text-red-500">*</span></flux:label>
<flux:input wire:model="product.supplier_article_number" placeholder="SOFA-ALBA-3S-ANTHR" />
<flux:description>{{ __('Originalnummer des Herstellers') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Produktname') }} <span class="text-red-500">*</span></flux:label>
<flux:input wire:model="product.product_name" placeholder="Sofa ALBA 3-Sitzer" />
<flux:description>{{ __('Anzeigename auf Website') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Marke / Hersteller') }}</flux:label>
<flux:input wire:model="product.brand" placeholder="Möbelwerk Nord" />
<flux:description>{{ __('Produzent oder Label') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Kategorie') }} <span class="text-red-500">*</span></flux:label>
<flux:select wire:model="product.category" placeholder="{{ __('Bitte wählen...') }}">
<option value="sofas">{{ __('Wohnzimmer > Sofas') }}</option>
<option value="chairs">{{ __('Esszimmer > Stühle') }}</option>
<option value="beds">{{ __('Schlafzimmer > Betten') }}</option>
</flux:select>
</flux:field>
<flux:field>
<flux:label>{{ __('Kurzbeschreibung') }}</flux:label>
<flux:textarea wire:model="product.short_description" rows="3" placeholder="Modernes Sofa mit Holzrahmen und Stoff"></flux:textarea>
<flux:description>{{ __('Max. 180 Zeichen für Snippets') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Langbeschreibung') }}</flux:label>
<flux:textarea wire:model="product.long_description" rows="6" placeholder="Das Sofa ALBA verbindet zeitloses Design..."></flux:textarea>
<flux:description>{{ __('Detaillierter Text für Produktseite') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Status') }} <span class="text-red-500">*</span></flux:label>
<flux:select wire:model="product.status">
<option value="active">{{ __('Aktiv') }}</option>
<option value="draft">{{ __('Entwurf') }}</option>
<option value="inactive">{{ __('Inaktiv') }}</option>
</flux:select>
</flux:field>
<flux:field>
<flux:label>{{ __('Erstelldatum / Änderungsdatum') }}</flux:label>
<flux:input type="date" wire:model="product.created_at" value="2025-11-04" />
<flux:description>{{ __('ISO-Datum') }}</flux:description>
</flux:field>
</flux:card>
{{-- 2. Varianten & Attribute --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('2. Varianten & Attribute') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Variantenattribute (Stammdaten)') }}</flux:label>
<flux:input wire:model="product.variant_attributes" placeholder="Farbe, Bezug, Gestellfarbe" />
<flux:description>{{ __('Merkmale, die die SKUs definieren') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Varianten (Kombinationen)') }}</flux:label>
<flux:input wire:model="product.variants" placeholder="Anthrazit / Stoff A / Eiche hell" />
<flux:description>{{ __('Konkrete Ausprägungen') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Weitere Attribute') }}</flux:label>
<flux:input wire:model="product.additional_attributes" placeholder="Sitzhärte: mittel" />
<flux:description>{{ __('Zusatzinfos (z. B. Sitzhärte, Stil)') }}</flux:description>
</flux:field>
</flux:card>
</div>
@endif
{{-- TAB 2: BILDER - Upload & Verwaltung --}}
@if($activeTab === 'bilder')
<div class="space-y-8">
{{-- Hauptbild & Galerie --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('Produktbilder') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Hauptbild') }} <span class="text-red-500">*</span></flux:label>
{{-- <flux:input type="file" wire:model="product.main_image" accept="image/*" /> --}}
<flux:description>{{ __('Hauptansicht des Produkts (min. 1200x1200px, max. 5MB)') }}</flux:description>
</flux:field>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
<div class="border-2 border-dashed border-zinc-300 dark:border-zinc-600 rounded-lg p-4 flex items-center justify-center h-40">
<div class="text-center">
<flux:icon.photo class="h-12 w-12 mx-auto text-zinc-400 mb-2" />
<span class="text-sm text-zinc-500">{{ __('Hauptbild Vorschau') }}</span>
</div>
</div>
</div>
<flux:separator />
<flux:field>
<flux:label>{{ __('Produktgalerie') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.gallery_images" accept="image/*" multiple /> --}}
<flux:description>{{ __('Mehrere Bilder hochladen (max. 10 Bilder, je max. 5MB)') }}</flux:description>
</flux:field>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
@for($i = 1; $i <= 8; $i++)
<div class="border-2 border-dashed border-zinc-300 dark:border-zinc-600 rounded-lg p-4 flex items-center justify-center h-40">
<div class="text-center">
<flux:icon.photo class="h-8 w-8 mx-auto text-zinc-400 mb-1" />
<span class="text-xs text-zinc-500">{{ __('Bild') }} {{ $i }}</span>
</div>
</div>
@endfor
</div>
</flux:card>
{{-- Detailbilder & Ansichten --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('Detailansichten & Perspektiven') }}</flux:heading>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<flux:field>
<flux:label>{{ __('Vorderansicht') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.view_front" accept="image/*" /> --}}
<flux:description>{{ __('Frontale Produktansicht') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Rückansicht') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.view_back" accept="image/*" /> --}}
<flux:description>{{ __('Rückseite des Produkts') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Seitenansicht (links)') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.view_left" accept="image/*" /> --}}
<flux:description>{{ __('Linke Seite') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Seitenansicht (rechts)') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.view_right" accept="image/*" /> --}}
<flux:description>{{ __('Rechte Seite') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Detailaufnahme 1') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.detail_1" accept="image/*" /> --}}
<flux:description>{{ __('z.B. Material-Nahaufnahme') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Detailaufnahme 2') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.detail_2" accept="image/*" /> --}}
<flux:description>{{ __('z.B. Verarbeitung, Nähte') }}</flux:description>
</flux:field>
</div>
</flux:card>
{{-- Ambiente & Lifestyle --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('Ambiente & Lifestyle-Bilder') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Ambiente-Bilder') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.lifestyle_images" accept="image/*" multiple /> --}}
<flux:description>{{ __('Produkt in Wohnsituation (max. 5 Bilder)') }}</flux:description>
</flux:field>
<div class="grid grid-cols-2 md:grid-cols-3 gap-4">
@for($i = 1; $i <= 3; $i++)
<div class="border-2 border-dashed border-zinc-300 dark:border-zinc-600 rounded-lg p-4 flex items-center justify-center h-48">
<div class="text-center">
<flux:icon.home class="h-10 w-10 mx-auto text-zinc-400 mb-2" />
<span class="text-sm text-zinc-500">{{ __('Ambiente') }} {{ $i }}</span>
</div>
</div>
@endfor
</div>
</flux:card>
{{-- 360° Ansicht & Video --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('360° Ansicht & Produktvideo') }}</flux:heading>
<flux:field>
<flux:label>{{ __('360° Bilder') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.rotation_images" accept="image/*" multiple /> --}}
<flux:description>{{ __('Bilder für 360° Rotation (min. 24 Bilder empfohlen)') }}</flux:description>
</flux:field>
<flux:separator />
<flux:field>
<flux:label>{{ __('Produktvideo') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.product_video" accept="video/*" /> --}}
<flux:description>{{ __('Kurzes Produktvideo (max. 50MB, MP4/WebM)') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Video-URL (alternativ)') }}</flux:label>
<flux:input wire:model="product.video_url" placeholder="https://youtube.com/watch?v=..." />
<flux:description>{{ __('YouTube, Vimeo oder andere Video-URL') }}</flux:description>
</flux:field>
</flux:card>
{{-- Technische Zeichnungen & Dokumente --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('Technische Zeichnungen & Dokumente') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Maßzeichnung') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.dimension_drawing" accept="image/*,application/pdf" /> --}}
<flux:description>{{ __('Technische Zeichnung mit Maßen (PNG, JPG oder PDF)') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Montageanleitung') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.assembly_manual" accept="application/pdf" /> --}}
<flux:description>{{ __('PDF mit Montageanleitung') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Datenblatt / Broschüre') }}</flux:label>
{{-- <flux:input type="file" wire:model="product.datasheet" accept="application/pdf" /> --}}
<flux:description>{{ __('Produktdatenblatt als PDF') }}</flux:description>
</flux:field>
</flux:card>
{{-- Bild-Metadaten & Alt-Texte --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('Bild-Metadaten & SEO') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Alt-Text (Hauptbild)') }}</flux:label>
<flux:input wire:model="product.main_image_alt" placeholder="Sofa ALBA 3-Sitzer in Anthrazit" />
<flux:description>{{ __('Beschreibung für Suchmaschinen und Barrierefreiheit') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Bildnachweis / Copyright') }}</flux:label>
<flux:input wire:model="product.image_credits" placeholder="© Möbelwerk Nord 2024" />
<flux:description>{{ __('Fotografen-Nennung oder Copyright-Hinweis') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Bildoptimierung') }}</flux:label>
<flux:checkbox wire:model="product.auto_optimize_images">
{{ __('Bilder automatisch für Web optimieren (Komprimierung & Skalierung)') }}
</flux:checkbox>
</flux:field>
<flux:field>
<flux:label>{{ __('Wasserzeichen') }}</flux:label>
<flux:checkbox wire:model="product.add_watermark">
{{ __('B2in-Wasserzeichen auf Bilder anwenden') }}
</flux:checkbox>
</flux:field>
</flux:card>
</div>
@endif
{{-- TAB 3: PHYSISCH - Maße & Verpackung --}}
@if($activeTab === 'physisch')
<div class="space-y-8">
{{-- 3. Maße & Gewicht (Produkt) --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('3. Maße & Gewicht (Produkt)') }}</flux:heading>
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<flux:field>
<flux:label>{{ __('Breite (mm)') }} <span class="text-red-500">*</span></flux:label>
<flux:input type="number" wire:model="product.width" placeholder="2200" />
<flux:description>{{ __('Gesamtbreite') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Tiefe (mm)') }} <span class="text-red-500">*</span></flux:label>
<flux:input type="number" wire:model="product.depth" placeholder="950" />
<flux:description>{{ __('Gesamttiefe') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Höhe (mm)') }} <span class="text-red-500">*</span></flux:label>
<flux:input type="number" wire:model="product.height" placeholder="830" />
<flux:description>{{ __('Gesamthöhe') }}</flux:description>
</flux:field>
</div>
<flux:field>
<flux:label>{{ __('Gewicht netto (kg)') }} <span class="text-red-500">*</span></flux:label>
<flux:input type="number" step="0.1" wire:model="product.weight" placeholder="68" />
<flux:description>{{ __('Möbel ohne Verpackung') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Aufbauart') }}</flux:label>
<flux:select wire:model="product.assembly_type">
<option value="assembled">{{ __('montiert') }}</option>
<option value="partially">{{ __('teilmontiert') }}</option>
<option value="disassembled">{{ __('zerlegt') }}</option>
</flux:select>
</flux:field>
<flux:field>
<flux:label>{{ __('Montagezeit (min)') }} <span class="text-red-500">*</span></flux:label>
<flux:input type="number" wire:model="product.assembly_time" placeholder="45" />
<flux:description>{{ __('Aufbauzeit') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Traglast (kg)') }}</flux:label>
<flux:input type="number" wire:model="product.load_capacity" placeholder="120" />
<flux:description>{{ __('Belastbarkeit') }}</flux:description>
</flux:field>
</flux:card>
{{-- 4. Verpackung & Logistik --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('4. Verpackung & Logistik') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Anzahl Packstücke') }}</flux:label>
<flux:input type="number" wire:model="product.package_count" placeholder="2" />
</flux:field>
<flux:field>
<flux:label>{{ __('Gesamtgewicht brutto (kg)') }}</flux:label>
<flux:input type="number" step="0.1" wire:model="product.gross_weight" placeholder="75" />
<flux:description>{{ __('inkl. Verpackung') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Verpackungsart') }}</flux:label>
<flux:input wire:model="product.packaging_type" placeholder="Karton mit Kantenschutz" />
<flux:description>{{ __('Karton, Holzrahmen usw.') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Verpackung recyclingfähig (%)') }}</flux:label>
<flux:input type="number" wire:model="product.packaging_recyclable" placeholder="85" />
<flux:description>{{ __('Anteil recycelbarer Materialien der Verpackung') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Kolli 1 Maße (mm)') }}</flux:label>
<flux:input wire:model="product.package_1_dimensions" placeholder="L × B × H: 1500 × 950 × 600" />
</flux:field>
<flux:field>
<flux:label>{{ __('Kolli 1 Gewicht (kg)') }}</flux:label>
<flux:input type="number" step="0.1" wire:model="product.package_1_weight" placeholder="45" />
</flux:field>
<flux:field>
<flux:label>{{ __('Palettenfähig') }}</flux:label>
<flux:select wire:model="product.palletizable">
<option value="yes">{{ __('Ja') }}</option>
<option value="no">{{ __('Nein') }}</option>
</flux:select>
</flux:field>
<flux:field>
<flux:label>{{ __('HS-Code (Zolltarifnummer)') }}</flux:label>
<flux:input wire:model="product.hs_code" placeholder="94016100" />
</flux:field>
</flux:card>
</div>
@endif
{{-- TAB 4: MATERIAL & HERKUNFT - Materialien & Holzherkunft --}}
@if($activeTab === 'material')
<div class="space-y-8">
{{-- 5. Materialien & Qualität --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('5. Materialien & Qualität') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Hauptmaterial') }} <span class="text-red-500">*</span></flux:label>
<flux:input wire:model="product.main_material" placeholder="Massivholz Buche" />
<flux:description>{{ __('Tragende Struktur') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Oberflächenmaterial') }}</flux:label>
<flux:input wire:model="product.surface_material" placeholder="Furnier Eiche geölt" />
<flux:description>{{ __('Sichtflächen') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Bezugsmaterial') }}</flux:label>
<flux:input wire:model="product.upholstery_material" placeholder="Stoff (Polyester)" />
<flux:description>{{ __('Stoff / Leder / Synthetik') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Farbton / Dekor') }}</flux:label>
<flux:input wire:model="product.color" placeholder="Eiche natur / Anthrazit" />
</flux:field>
<flux:field>
<flux:label>{{ __('Herkunftsland (Produktion)') }} <span class="text-red-500">*</span></flux:label>
<flux:select wire:model="product.country_of_origin">
<option value="DE">{{ __('Deutschland') }}</option>
<option value="PL">{{ __('Polen') }}</option>
<option value="IT">{{ __('Italien') }}</option>
<option value="AT">{{ __('Österreich') }}</option>
</flux:select>
<flux:description>{{ __('ISO-Land') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Pflegehinweise') }}</flux:label>
<flux:textarea wire:model="product.care_instructions" rows="3" placeholder="Reinigung & Pflege"></flux:textarea>
<flux:description>{{ __('Mit feuchtem Tuch abwischen.') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Zertifikate / Labels') }}</flux:label>
<flux:input wire:model="product.certificates" placeholder="FSC, OEKO-TEX, Blauer Engel etc." />
</flux:field>
</flux:card>
{{-- 6. Holzherkunft & EUDR --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('6. Holzherkunft & EUDR') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Holzart(en)') }} <span class="text-red-500">*</span></flux:label>
<flux:input wire:model="product.wood_type" placeholder="Quercus robur (Eiche)" />
<flux:description>{{ __('Botanische Bezeichnung (falls Holz enthalten)') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Herkunftsland des Holzes') }} <span class="text-red-500">*</span></flux:label>
<flux:select wire:model="product.wood_origin_country">
<option value="PL">{{ __('Polen') }}</option>
<option value="DE">{{ __('Deutschland') }}</option>
<option value="RO">{{ __('Rumänien') }}</option>
</flux:select>
<flux:description>{{ __('ISO-Code (falls Holz enthalten)') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Region / Provinz') }}</flux:label>
<flux:input wire:model="product.wood_region" placeholder="Masowien" />
<flux:description>{{ __('falls erforderlich für EUDR') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Erntejahr') }}</flux:label>
<flux:input type="number" wire:model="product.harvest_year" placeholder="2024" />
<flux:description>{{ __('Jahr der Holzgewinnung') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Forstbetrieb / Lieferant') }}</flux:label>
<flux:input wire:model="product.forest_operator" placeholder="ForestPol Sp. z o.o." />
</flux:field>
<flux:field>
<flux:label>{{ __('Nachhaltigkeitszertifikat') }}</flux:label>
<flux:input wire:model="product.sustainability_certificate" placeholder="FSC C123456" />
<flux:description>{{ __('FSC / PEFC') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Sorgfaltserklärung (EUDR-DD-Referenz)') }}</flux:label>
<flux:input wire:model="product.eudr_reference" placeholder="EUDR-DD-2025-PL-03421" />
<flux:description>{{ __('offiziell Referenz') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Nachweis­datei (Upload)') }}</flux:label>
<flux:input type="file" wire:model="product.eudr_document" />
<flux:description>{{ __('PDF / Link zum Statement') }}</flux:description>
</flux:field>
</flux:card>
</div>
@endif
{{-- TAB 5: KOMMERZIELL - Preise, Verfügbarkeit & Lieferung --}}
@if($activeTab === 'kommerziell')
<div class="space-y-8">
{{-- 7. Preise & Konditionen --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('7. Preise & Konditionen') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Einkaufspreis (net)') }}</flux:label>
<flux:input type="number" step="0.01" wire:model="product.purchase_price" placeholder="680.00" />
</flux:field>
<flux:field>
<flux:label>{{ __('Verkaufspreis (net)') }} <span class="text-red-500">*</span></flux:label>
<flux:input type="number" step="0.01" wire:model="product.selling_price" placeholder="1,250.00" />
<flux:description>{{ __('Für B2in-Plattform') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Währung') }} <span class="text-red-500">*</span></flux:label>
<flux:select wire:model="product.currency">
<option value="EUR">{{ __('EUR') }}</option>
<option value="USD">{{ __('USD') }}</option>
<option value="CHF">{{ __('CHF') }}</option>
</flux:select>
</flux:field>
<flux:field>
<flux:label>{{ __('Steuersatz (%)') }} <span class="text-red-500">*</span></flux:label>
<flux:input type="number" wire:model="product.tax_rate" placeholder="19" />
</flux:field>
<flux:field>
<flux:label>{{ __('UVP (Brutto)') }}</flux:label>
<flux:input type="number" step="0.01" wire:model="product.rrp" placeholder="1,499.00" />
<flux:description>{{ __('Unverbindliche Preisempfehlung') }}</flux:description>
</flux:field>
</flux:card>
{{-- 8. Verfügbarkeit & Lieferzeit --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('8. Verfügbarkeit & Lieferzeit') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Lagerstatus') }} <span class="text-red-500">*</span></flux:label>
<flux:select wire:model="product.stock_status">
<option value="in_stock">{{ __('Auf Lager') }}</option>
<option value="on_order">{{ __('Auf Bestellung') }}</option>
<option value="out_of_stock">{{ __('Nicht verfügbar') }}</option>
</flux:select>
<flux:description>{{ __('Auf Lager / Auf Bestellung / Nicht verfügbar') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Lieferzeit (Wochen)') }} <span class="text-red-500">*</span></flux:label>
<flux:input type="number" wire:model="product.delivery_time" placeholder="4-6" />
<flux:description>{{ __('MinMax-Spanne') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Produktionszeit (Tage)') }}</flux:label>
<flux:input type="number" wire:model="product.production_time" placeholder="21" />
<flux:description>{{ __('falls relevant') }}</flux:description>
</flux:field>
</flux:card>
{{-- 9. Lieferung, Montage & Service --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('9. Lieferung, Montage & Service') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Lieferart') }}</flux:label>
<flux:select wire:model="product.delivery_type">
<option value="pickup">{{ __('Abholung') }}</option>
<option value="delivery">{{ __('Lieferung') }}</option>
<option value="expedition">{{ __('Spedition') }}</option>
<option value="parcel">{{ __('Paket') }}</option>
</flux:select>
<flux:description>{{ __('Abholung / Lieferung / Spedition / Paket') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Montageservice') }}</flux:label>
<flux:select wire:model="product.assembly_service">
<option value="yes">{{ __('Ja') }}</option>
<option value="no">{{ __('Nein') }}</option>
</flux:select>
</flux:field>
<flux:field>
<flux:label>{{ __('Service-Radius (km)') }}</flux:label>
<flux:input type="number" wire:model="product.service_radius" placeholder="50" />
<flux:description>{{ __('Für Montageservice') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Garantie (Monate)') }}</flux:label>
<flux:input type="number" wire:model="product.warranty" placeholder="24" />
</flux:field>
</flux:card>
</div>
@endif
{{-- TAB 6: VERWALTUNG - Händler, Nachhaltigkeit, Scoring & Verwaltung --}}
@if($activeTab === 'verwaltung')
<div class="space-y-8">
{{-- 10. Händler- / Herstellerzuordnung --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('10. Händler- / Herstellerzuordnung') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Verkäufertyp') }} <span class="text-red-500">*</span></flux:label>
<flux:select wire:model="product.seller_type">
<option value="retailer">{{ __('Händler') }}</option>
<option value="manufacturer">{{ __('Hersteller') }}</option>
<option value="broker">{{ __('Makler') }}</option>
</flux:select>
<flux:description>{{ __('Hersteller / Makler') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Verkäufername') }} <span class="text-red-500">*</span></flux:label>
<flux:input wire:model="product.seller_name" placeholder="WohnDesign Bielefeld" />
</flux:field>
<flux:field>
<flux:label>{{ __('Verkäufer-ID') }}</flux:label>
<flux:input wire:model="product.seller_id" placeholder="SELLER_xyz" />
</flux:field>
<flux:field>
<flux:label>{{ __('Region / Hub') }} <span class="text-red-500">*</span></flux:label>
<flux:input wire:model="product.region" placeholder="OWL" />
<flux:description>{{ __('Logistische Zuordnung') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Ort / PLZ') }}</flux:label>
<flux:input wire:model="product.location" placeholder="33602 Bielefeld" />
<flux:description>{{ __('Standort des Verkäufers/Lagers') }}</flux:description>
</flux:field>
</flux:card>
{{-- 11. Nachhaltigkeit & Umwelt --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('11. Nachhaltigkeit & Umwelt') }}</flux:heading>
<flux:field>
<flux:label>{{ __('CO₂-Fußabdruck (kg CO₂e) pro Stück') }}</flux:label>
<flux:input type="number" step="0.1" wire:model="product.co2_footprint" placeholder="35" />
</flux:field>
<flux:field>
<flux:label>{{ __('Recyclinganteil (%)') }}</flux:label>
<flux:input type="number" wire:model="product.recycling_rate" placeholder="40" />
<flux:description>{{ __('Anteil recycelter Materialien im Produkt') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Regionale Produktion') }}</flux:label>
<flux:select wire:model="product.regional_production">
<option value="yes">{{ __('Ja') }}</option>
<option value="no">{{ __('Nein') }}</option>
</flux:select>
<flux:description>{{ __('Ja / Nein (Umkreis z. B. < 500 km)') }}</flux:description>
</flux:field>
</flux:card>
{{-- 12. Scoring-System (B2in Internal) --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('12. Scoring-System (B2in Internal)') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Stauraumvolumen (L)') }}</flux:label>
<flux:input type="number" wire:model="product.storage_volume" placeholder="280" />
<flux:description>{{ __('Innenvolumen') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Aufbauaufwand (15)') }}</flux:label>
<flux:select wire:model="product.assembly_effort">
<option value="1">1 - {{ __('Sehr einfach') }}</option>
<option value="2">2 - {{ __('Einfach') }}</option>
<option value="3">3 - {{ __('Mittel') }}</option>
<option value="4">4 - {{ __('Anspruchsvoll') }}</option>
<option value="5">5 - {{ __('Sehr anspruchsvoll') }}</option>
</flux:select>
<flux:description>{{ __('gering = 1') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Designpunkte (15)') }}</flux:label>
<flux:select wire:model="product.design_score">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</flux:select>
<flux:description>{{ __('interne Bewertung') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Gesamt-Score') }}</flux:label>
<flux:input type="number" step="0.1" wire:model="product.total_score" placeholder="4.2" disabled />
<flux:description>{{ __('automatisch berechnet') }}</flux:description>
</flux:field>
</flux:card>
{{-- 13. Verwaltung & Lebenszyklus --}}
<flux:card class="space-y-6">
<flux:heading size="lg" class="border-b pb-3">{{ __('13. Verwaltung & Lebenszyklus') }}</flux:heading>
<flux:field>
<flux:label>{{ __('Sichtbar ab / bis (Datum)') }}</flux:label>
<flux:input type="date" wire:model="product.visible_from" placeholder="2025-01-01 / 2026-01-01" />
<flux:description>{{ __('Steuerung der Veröffentlichung') }}</flux:description>
</flux:field>
<flux:field>
<flux:label>{{ __('Freigabe durch B2in erforderlich') }}</flux:label>
<flux:select wire:model="product.requires_approval">
<option value="yes">{{ __('Ja') }}</option>
<option value="no">{{ __('Nein') }}</option>
</flux:select>
</flux:field>
<flux:field>
<flux:label>{{ __('Letzte Änderung') }}</flux:label>
<flux:input type="date" wire:model="product.last_modified" value="2025-11-04" disabled />
<flux:description>{{ __('Datum der letzten Aktualisierung') }}</flux:description>
</flux:field>
</flux:card>
</div>
@endif
{{-- Submit Button (außerhalb der Tabs, immer sichtbar) --}}
<div class="flex justify-end gap-4 pt-6 border-t">
<flux:button variant="ghost" href="{{ route('dashboard') }}">{{ __('Abbrechen') }}</flux:button>
<flux:button type="submit" variant="primary" icon="check">{{ __('Produkt speichern') }}</flux:button>
</div>
</form>
</div>
</div>