<?php

namespace Database\Seeders;

use App\Models\Setting;
use Illuminate\Database\Seeder;

class SettingSeeder extends Seeder
{
    public function run(): void
    {
        $rows = [
            // ── Identitas perusahaan ──────────────────────────
            ['key' => 'company_name',    'label' => 'Nama Perusahaan / Toko',    'group' => 'perusahaan', 'type' => 'text',     'value' => 'Service Center'],
            ['key' => 'company_tagline', 'label' => 'Tagline / Slogan',           'group' => 'perusahaan', 'type' => 'text',     'value' => 'Layanan Perbaikan Komputer & Laptop Profesional'],
            ['key' => 'company_address', 'label' => 'Alamat Lengkap',             'group' => 'perusahaan', 'type' => 'textarea', 'value' => 'Jl. Contoh No. 1, Kota Anda'],
            ['key' => 'company_phone',   'label' => 'Nomor Telepon / WA',         'group' => 'perusahaan', 'type' => 'tel',      'value' => '0800-000-0000'],
            ['key' => 'company_email',   'label' => 'Email Perusahaan',           'group' => 'perusahaan', 'type' => 'email',    'value' => 'service@example.com'],
            ['key' => 'company_website', 'label' => 'Website (opsional)',         'group' => 'perusahaan', 'type' => 'url',      'value' => ''],

            // ── Nota / Tanda Terima ───────────────────────────
            ['key' => 'nota_header_note', 'label' => 'Catatan Tambahan di Kop Nota',       'group' => 'nota', 'type' => 'textarea', 'value' => ''],
            ['key' => 'nota_footer_note', 'label' => 'Teks Footer Nota',                   'group' => 'nota', 'type' => 'textarea', 'value' => 'Simpan dokumen ini sebagai bukti penyerahan/pengambilan perangkat.'],
            ['key' => 'nota_show_cost',   'label' => 'Tampilkan Kotak Estimasi Biaya',     'group' => 'nota', 'type' => 'toggle',   'value' => '1'],
            ['key' => 'nota_show_ttd',    'label' => 'Tampilkan Kotak Tanda Tangan',       'group' => 'nota', 'type' => 'toggle',   'value' => '1'],

            // ── Form Tiket ────────────────────────────────────
            ['key' => 'form_ticket_note',  'label' => 'Teks Info di Atas Form Tiket Baru', 'group' => 'form', 'type' => 'textarea', 'value' => ''],
            ['key' => 'form_ticket_terms', 'label' => 'Syarat & Ketentuan Servis',         'group' => 'form', 'type' => 'textarea', 'value' => "SYARAT & KETENTUAN LAYANAN SERVIS\n\n1. Pelanggan wajib memberikan informasi yang benar dan lengkap mengenai keluhan atau kerusakan perangkat yang diserahkan.\n\n2. Estimasi biaya perbaikan bersifat perkiraan dan dapat berubah berdasarkan hasil pemeriksaan lebih lanjut. Pelanggan akan dikonfirmasi terlebih dahulu sebelum perbaikan dilanjutkan apabila terdapat biaya tambahan.\n\n3. Service Center tidak bertanggung jawab atas kehilangan data selama proses perbaikan. Sangat disarankan untuk melakukan backup data sebelum menyerahkan perangkat.\n\n4. Garansi perbaikan berlaku 7 (tujuh) hari sejak perangkat diambil, khusus untuk kerusakan yang sama dan bukan disebabkan oleh penggunaan yang tidak semestinya atau kerusakan baru.\n\n5. Perangkat yang tidak diambil dalam 30 (tiga puluh) hari sejak pemberitahuan selesai dapat dikenakan biaya penyimpanan.\n\n6. Dengan menyerahkan perangkat, pelanggan dianggap telah membaca, memahami, dan menyetujui seluruh syarat dan ketentuan di atas."],

            // ── Invoice ──────────────────────────────────────
            ['key' => 'invoice_primary_color',  'label' => 'Warna Utama Invoice (hex)',            'group' => 'invoice', 'type' => 'color',    'value' => '#1d4ed8'],
            ['key' => 'invoice_logo_path',       'label' => 'Logo Invoice',                         'group' => 'invoice', 'type' => 'image_upload', 'value' => ''],
            ['key' => 'invoice_footer_text',     'label' => 'Teks Footer Invoice',                  'group' => 'invoice', 'type' => 'textarea', 'value' => 'Terima kasih atas kepercayaan Anda.'],
            ['key' => 'invoice_payment_terms',   'label' => 'Ketentuan Pembayaran di Invoice',      'group' => 'invoice', 'type' => 'textarea', 'value' => 'Pembayaran dilakukan paling lambat pada tanggal jatuh tempo yang tertera.'],
            ['key' => 'invoice_show_qr',         'label' => 'Tampilkan QR Verifikasi di Invoice',   'group' => 'invoice', 'type' => 'toggle',   'value' => '1'],
            ['key' => 'invoice_show_signature',  'label' => 'Tampilkan Kolom Tanda Tangan',         'group' => 'invoice', 'type' => 'toggle',   'value' => '1'],
            ['key' => 'invoice_show_due_date',   'label' => 'Tampilkan Jatuh Tempo di PDF',         'group' => 'invoice', 'type' => 'toggle',   'value' => '1'],
            ['key' => 'invoice_show_source',     'label' => 'Tampilkan Sumber Invoice di PDF',      'group' => 'invoice', 'type' => 'toggle',   'value' => '1'],
            ['key' => 'invoice_show_public_note','label' => 'Tampilkan Catatan Invoice di PDF',     'group' => 'invoice', 'type' => 'toggle',   'value' => '1'],

            // ── Notifikasi ────────────────────────────────────
            ['key' => 'wa_admin_number', 'label' => 'Nomor WA Admin (penerima notif internal)', 'group' => 'notifikasi', 'type' => 'tel', 'value' => ''],
        ];

        foreach ($rows as $row) {
            Setting::updateOrCreate(
                ['key' => $row['key']],
                $row
            );
        }
    }
}
