<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Carbon\Carbon;

class KlinikSeeder extends Seeder
{
    /**
     * Seed seluruh data awal klinik: users, dokter, pasien,
     * embedding wajah, pemeriksaan kesehatan, analisis AI,
     * relasi dokter-pasien, pembayaran, dan pengaturan sistem.
     */
    public function run(): void
    {
        $this->command->info('🏥 Memulai seeding data Klinik Sehat Bersama...');

        DB::statement('SET FOREIGN_KEY_CHECKS=0;');

        $this->seedUsers();
        $this->seedDokter();
        $this->seedPasien();
        $this->seedEmbeddingWajah();
        $this->seedPemeriksaanKesehatan();
        $this->seedAnalisisAI();
        $this->seedDokterPasien();
        $this->seedPembayaran();
        $this->seedPengaturanSistem();

        DB::statement('SET FOREIGN_KEY_CHECKS=1;');

        $this->command->info('✅ Seeding selesai! Semua data berhasil dimasukkan.');
    }

    // =========================================================================
    // USERS
    // =========================================================================
    private function seedUsers(): void
    {
        $this->command->info('  → Seeding users...');

        $users = [
            // Admin
            [
                'id'                => 1,
                'name'              => 'Administrator Sistem',
                'username'          => 'admin',
                'email'             => 'admin@kliniksehat.id',
                'email_verified_at' => now(),
                'password'          => Hash::make('password'),
                'role'              => 'admin',
                'remember_token'    => Str::random(10),
                'created_at'        => now(),
                'updated_at'        => now(),
            ],

            // Petugas
            [
                'id'                => 2,
                'name'              => 'Siti Rahayu Ningsih',
                'username'          => 'siti.rahayu',
                'email'             => 'siti.rahayu@kliniksehat.id',
                'email_verified_at' => now(),
                'password'          => Hash::make('password'),
                'role'              => 'petugas',
                'remember_token'    => Str::random(10),
                'created_at'        => now(),
                'updated_at'        => now(),
            ],
            [
                'id'                => 3,
                'name'              => 'Budi Santoso',
                'username'          => 'budi.santoso',
                'email'             => 'budi.santoso@kliniksehat.id',
                'email_verified_at' => now(),
                'password'          => Hash::make('password'),
                'role'              => 'petugas',
                'remember_token'    => Str::random(10),
                'created_at'        => now(),
                'updated_at'        => now(),
            ],
            [
                'id'                => 4,
                'name'              => 'Dewi Lestari Putri',
                'username'          => 'dewi.lestari',
                'email'             => 'dewi.lestari@kliniksehat.id',
                'email_verified_at' => now(),
                'password'          => Hash::make('password'),
                'role'              => 'petugas',
                'remember_token'    => Str::random(10),
                'created_at'        => now(),
                'updated_at'        => now(),
            ],

            // Dokter
            [
                'id'                => 5,
                'name'              => 'dr. Ahmad Fauzi Hakim',
                'username'          => 'dr.fauzi',
                'email'             => 'ahmad.fauzi@kliniksehat.id',
                'email_verified_at' => now(),
                'password'          => Hash::make('password'),
                'role'              => 'dokter',
                'remember_token'    => Str::random(10),
                'created_at'        => now(),
                'updated_at'        => now(),
            ],
            [
                'id'                => 6,
                'name'              => 'dr. Ratna Dewi Kusuma, Sp.A',
                'username'          => 'dr.ratna',
                'email'             => 'ratna.dewi@kliniksehat.id',
                'email_verified_at' => now(),
                'password'          => Hash::make('password'),
                'role'              => 'dokter',
                'remember_token'    => Str::random(10),
                'created_at'        => now(),
                'updated_at'        => now(),
            ],
            [
                'id'                => 7,
                'name'              => 'dr. Hendra Wijaya, Sp.PD',
                'username'          => 'dr.hendra',
                'email'             => 'hendra.wijaya@kliniksehat.id',
                'email_verified_at' => now(),
                'password'          => Hash::make('password'),
                'role'              => 'dokter',
                'remember_token'    => Str::random(10),
                'created_at'        => now(),
                'updated_at'        => now(),
            ],
        ];

        DB::table('users')->truncate();
        DB::table('users')->insert($users);
        $this->command->info('     ✓ ' . count($users) . ' user berhasil di-seed.');
    }

    // =========================================================================
    // DOKTER
    // =========================================================================
    private function seedDokter(): void
    {
        $this->command->info('  → Seeding dokter...');

        $dokter = [
            [
                'id'                        => 1,
                'user_id'                   => 5,
                'kode_dokter'               => 'DOK-0001',
                'nip'                       => '198503152010011001',
                'nik'                       => '3271011503850001',
                'nama_lengkap'              => 'Ahmad Fauzi Hakim',
                'jenis_kelamin'             => 'L',
                'tanggal_lahir'             => '1985-03-15',
                'tempat_lahir'              => 'Bandung',
                'usia'                      => 40,
                'alamat_lengkap'            => 'Jl. Merdeka No. 45, Kecamatan Coblong',
                'province_id'              => '32',
                'regency_id'               => '3273',
                'district_id'              => '3273030',
                'village_id'               => '3273030001',
                'kode_pos'                  => '40132',
                'no_telepon'                => '022-2034567',
                'no_wa'                     => '081234567890',
                'email'                     => 'ahmad.fauzi@kliniksehat.id',
                'no_str'                    => 'STR/12345/UMUM/2022',
                'tanggal_str'               => '2022-01-10',
                'tanggal_expired_str'       => '2027-01-10',
                'no_sip'                    => 'SIP/67890/KBB/2022',
                'tanggal_sip'               => '2022-02-01',
                'tanggal_expired_sip'       => '2025-02-01',
                'jenis_dokter'              => 'DOKTER_UMUM',
                'spesialisasi'              => 'Dokter Umum — Primary Care',
                'keahlian_khusus'           => 'Penanganan demam tropis, manajemen penyakit kronis ringan, vaksinasi dewasa.',
                'riwayat_pendidikan'        => 'S1 Kedokteran Umum — Universitas Padjadjaran (2009). Profesi Dokter Umum — RSUP Dr. Hasan Sadikin (2011).',
                'riwayat_pekerjaan'         => 'Dokter Puskesmas Coblong (2011–2016). Dokter Umum Klinik Sehat Bersama (2016–sekarang).',
                'tahun_pengalaman'          => 14,
                'hari_praktik'              => json_encode(['Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat']),
                'jam_mulai_praktik'         => '08:00:00',
                'jam_selesai_praktik'       => '15:00:00',
                'ruangan'                   => 'Poli Umum',
                'gedung'                    => 'Gedung A',
                'lantai'                    => 'Lantai 1',
                'kuota_pasien_per_hari'     => 30,
                'biografi'                  => 'dr. Ahmad Fauzi Hakim adalah dokter umum berpengalaman dengan dedikasi tinggi dalam pelayanan kesehatan primer. Beliau dikenal ramah dan telaten dalam menangani pasien dari berbagai usia.',
                'bahasa_yang_dikuasai'      => json_encode(['Indonesia', 'Sunda', 'Inggris']),
                'tarif_konsultasi'          => 75000.00,
                'status_dokter'             => 'AKTIF',
                'tanggal_bergabung'         => '2016-05-01',
                'rating_rata_rata'          => 4.85,
                'jumlah_review'             => 234,
                'jumlah_pasien_ditangani'   => 3420,
                'didaftarkan_oleh'          => 1,
                'tanggal_registrasi'        => now(),
                'catatan_admin'             => 'Dokter tetap. STR dan SIP dalam proses perpanjangan.',
                'created_at'                => now(),
                'updated_at'                => now(),
            ],
            [
                'id'                        => 2,
                'user_id'                   => 6,
                'kode_dokter'               => 'DOK-0002',
                'nip'                       => '198811282012012002',
                'nik'                       => '3271022811880002',
                'nama_lengkap'              => 'Ratna Dewi Kusuma',
                'jenis_kelamin'             => 'P',
                'tanggal_lahir'             => '1988-11-28',
                'tempat_lahir'              => 'Jakarta',
                'usia'                      => 36,
                'alamat_lengkap'            => 'Jl. Teuku Umar No. 12, Menteng',
                'province_id'              => '31',
                'regency_id'               => '3173',
                'district_id'              => '3173010',
                'village_id'               => '3173010001',
                'kode_pos'                  => '10310',
                'no_telepon'                => '021-3145678',
                'no_wa'                     => '081298765432',
                'email'                     => 'ratna.dewi@kliniksehat.id',
                'no_str'                    => 'STR/54321/ANAK/2021',
                'tanggal_str'               => '2021-06-01',
                'tanggal_expired_str'       => '2026-06-01',
                'no_sip'                    => 'SIP/11223/JKT/2021',
                'tanggal_sip'               => '2021-07-15',
                'tanggal_expired_sip'       => '2026-07-15',
                'jenis_dokter'              => 'DOKTER_SPESIALIS_ANAK',
                'spesialisasi'              => 'Ilmu Kesehatan Anak (Sp.A) — Pediatri Umum & Tumbuh Kembang',
                'keahlian_khusus'           => 'Tumbuh kembang anak, imunisasi, nutrisi bayi dan balita, penanganan infeksi anak.',
                'riwayat_pendidikan'        => 'S1 Kedokteran — Universitas Indonesia (2012). Spesialisasi Anak — RSCM Jakarta (2018). Fellowship Tumbuh Kembang — IDAI (2019).',
                'riwayat_pekerjaan'         => 'PPDS Anak RSCM (2014–2018). Dokter Spesialis Anak Klinik Sehat Bersama (2018–sekarang).',
                'tahun_pengalaman'          => 7,
                'hari_praktik'              => json_encode(['Senin', 'Rabu', 'Jumat', 'Sabtu']),
                'jam_mulai_praktik'         => '09:00:00',
                'jam_selesai_praktik'       => '14:00:00',
                'ruangan'                   => 'Poli Anak',
                'gedung'                    => 'Gedung B',
                'lantai'                    => 'Lantai 1',
                'kuota_pasien_per_hari'     => 20,
                'biografi'                  => 'dr. Ratna Dewi Kusuma, Sp.A adalah dokter spesialis anak yang sabar dan berdedikasi. Beliau aktif dalam kegiatan posyandu dan penyuluhan tumbuh kembang anak di komunitas.',
                'bahasa_yang_dikuasai'      => json_encode(['Indonesia', 'Inggris']),
                'tarif_konsultasi'          => 150000.00,
                'status_dokter'             => 'AKTIF',
                'tanggal_bergabung'         => '2018-08-01',
                'rating_rata_rata'          => 4.92,
                'jumlah_review'             => 187,
                'jumlah_pasien_ditangani'   => 1850,
                'didaftarkan_oleh'          => 1,
                'tanggal_registrasi'        => now(),
                'catatan_admin'             => 'Dokter spesialis tetap. Sangat direkomendasikan untuk pasien anak.',
                'created_at'                => now(),
                'updated_at'                => now(),
            ],
            [
                'id'                        => 3,
                'user_id'                   => 7,
                'kode_dokter'               => 'DOK-0003',
                'nip'                       => '197606042005011003',
                'nik'                       => '3578030406760003',
                'nama_lengkap'              => 'Hendra Wijaya',
                'jenis_kelamin'             => 'L',
                'tanggal_lahir'             => '1976-06-04',
                'tempat_lahir'              => 'Surabaya',
                'usia'                      => 49,
                'alamat_lengkap'            => 'Jl. Darmo Permai III No. 8, Surabaya Barat',
                'province_id'              => '35',
                'regency_id'               => '3578',
                'district_id'              => '3578030',
                'village_id'               => '3578030001',
                'kode_pos'                  => '60226',
                'no_telepon'                => '031-7325678',
                'no_wa'                     => '085678901234',
                'email'                     => 'hendra.wijaya@kliniksehat.id',
                'no_str'                    => 'STR/98765/PD/2020',
                'tanggal_str'               => '2020-03-20',
                'tanggal_expired_str'       => '2025-03-20',
                'no_sip'                    => 'SIP/44556/SBY/2020',
                'tanggal_sip'               => '2020-04-01',
                'tanggal_expired_sip'       => '2025-04-01',
                'jenis_dokter'              => 'DOKTER_SPESIALIS_PENYAKIT_DALAM',
                'spesialisasi'              => 'Penyakit Dalam (Sp.PD) — Endokrinologi & Metabolik',
                'keahlian_khusus'           => 'Manajemen diabetes melitus, hipertensi, dislipidemia, penyakit tiroid, dan gangguan metabolik.',
                'riwayat_pendidikan'        => 'S1 Kedokteran — Universitas Airlangga (2001). Spesialisasi Penyakit Dalam — RSUD Dr. Soetomo (2009). Sub-spesialisasi Endokrinologi — FKUI (2015).',
                'riwayat_pekerjaan'         => 'Dokter Internist RSUD Dr. Soetomo (2009–2015). Senior Consultant Klinik Sehat Bersama (2015–sekarang).',
                'tahun_pengalaman'          => 20,
                'hari_praktik'              => json_encode(['Selasa', 'Kamis', 'Sabtu']),
                'jam_mulai_praktik'         => '10:00:00',
                'jam_selesai_praktik'       => '16:00:00',
                'ruangan'                   => 'Poli Penyakit Dalam',
                'gedung'                    => 'Gedung B',
                'lantai'                    => 'Lantai 2',
                'kuota_pasien_per_hari'     => 25,
                'biografi'                  => 'dr. Hendra Wijaya, Sp.PD adalah konsultan penyakit dalam senior dengan keahlian khusus di bidang endokrinologi dan metabolik. Beliau aktif dalam penelitian klinis dan sering menjadi pembicara di seminar medis nasional.',
                'bahasa_yang_dikuasai'      => json_encode(['Indonesia', 'Jawa', 'Inggris', 'Belanda']),
                'tarif_konsultasi'          => 200000.00,
                'status_dokter'             => 'AKTIF',
                'tanggal_bergabung'         => '2015-01-05',
                'rating_rata_rata'          => 4.78,
                'jumlah_review'             => 312,
                'jumlah_pasien_ditangani'   => 5670,
                'didaftarkan_oleh'          => 1,
                'tanggal_registrasi'        => now(),
                'catatan_admin'             => 'Dokter senior. Konsultasi wajib via antrean online.',
                'created_at'                => now(),
                'updated_at'                => now(),
            ],
        ];

        DB::table('dokter')->truncate();
        DB::table('dokter')->insert($dokter);
        $this->command->info('     ✓ ' . count($dokter) . ' dokter berhasil di-seed.');
    }

    // =========================================================================
    // PASIEN
    // =========================================================================
    private function seedPasien(): void
    {
        $this->command->info('  → Seeding pasien...');

        $pasien = [
            [
                'id'                          => 1,
                'id_eksternal'                => 'EXT-PSN-20240001',
                'no_rekam_medis'              => 'RM-2024-00001',
                'nik'                         => '3271034501890011',
                'nama_lengkap'                => 'Agus Setiawan',
                'jenis_kelamin'               => 'L',
                'tanggal_lahir'               => '1989-01-05',
                'tempat_lahir'                => 'Jakarta',
                'usia'                        => 36,
                'alamat_lengkap'              => 'Jl. Kebon Jeruk No. 23 RT 005/RW 003',
                'province_id'                => '31',
                'regency_id'                 => '3173',
                'district_id'                => '3173010',
                'village_id'                 => '3173010001',
                'kode_pos'                    => '11530',
                'no_telepon'                  => '021-5345678',
                'no_wa'                       => '081312345678',
                'email'                       => 'agus.setiawan@email.com',
                'golongan_darah'              => 'O+',
                'tinggi_badan'                => 172.50,
                'berat_badan'                 => 75.00,
                'riwayat_penyakit'            => 'Tidak ada riwayat penyakit kronis. Pernah operasi usus buntu tahun 2015.',
                'alergi'                      => 'Alergi penisilin (ruam kulit).',
                'catatan_khusus'              => null,
                'wajah_terdaftar'             => true,
                'tanggal_registrasi_wajah'    => '2024-03-01 08:30:00',
                'foto_profil'                 => 'pasien/foto/agus-setiawan.jpg',
                'status_pasien'               => 'AKTIF',
                'keterangan_status'           => null,
                'didaftarkan_oleh'            => 2,
                'tanggal_registrasi'          => '2024-03-01 08:25:00',
                'created_at'                  => now(),
                'updated_at'                  => now(),
                'deleted_at'                  => null,
            ],
            [
                'id'                          => 2,
                'id_eksternal'                => 'EXT-PSN-20240002',
                'no_rekam_medis'              => 'RM-2024-00002',
                'nik'                         => '3578014508920022',
                'nama_lengkap'                => 'Nurul Hidayah',
                'jenis_kelamin'               => 'P',
                'tanggal_lahir'               => '1992-08-05',
                'tempat_lahir'                => 'Surabaya',
                'usia'                        => 32,
                'alamat_lengkap'              => 'Perumahan Griya Asri Blok C No. 7',
                'province_id'                => '35',
                'regency_id'                 => '3578',
                'district_id'                => '3578020',
                'village_id'                 => '3578020003',
                'kode_pos'                    => '60111',
                'no_telepon'                  => '031-5912345',
                'no_wa'                       => '082234567890',
                'email'                       => 'nurul.hidayah@email.com',
                'golongan_darah'              => 'A+',
                'tinggi_badan'                => 158.00,
                'berat_badan'                 => 52.50,
                'riwayat_penyakit'            => 'Asma ringan sejak kecil. Terkontrol dengan inhaler bila diperlukan.',
                'alergi'                      => 'Alergi debu dan bulu hewan (rhinitis alergi).',
                'catatan_khusus'              => 'Pasien membawa inhaler sendiri. Informasikan bila akan menggunakan obat golongan NSAID.',
                'wajah_terdaftar'             => true,
                'tanggal_registrasi_wajah'    => '2024-04-10 09:15:00',
                'foto_profil'                 => 'pasien/foto/nurul-hidayah.jpg',
                'status_pasien'               => 'AKTIF',
                'keterangan_status'           => null,
                'didaftarkan_oleh'            => 2,
                'tanggal_registrasi'          => '2024-04-10 09:10:00',
                'created_at'                  => now(),
                'updated_at'                  => now(),
                'deleted_at'                  => null,
            ],
            [
                'id'                          => 3,
                'id_eksternal'                => 'EXT-PSN-20240003',
                'no_rekam_medis'              => 'RM-2024-00003',
                'nik'                         => '3273012212650033',
                'nama_lengkap'                => 'Soetrisno Hadiwibowo',
                'jenis_kelamin'               => 'L',
                'tanggal_lahir'               => '1965-12-22',
                'tempat_lahir'                => 'Yogyakarta',
                'usia'                        => 59,
                'alamat_lengkap'              => 'Jl. Pahlawan No. 18, Coblong',
                'province_id'                => '32',
                'regency_id'                 => '3273',
                'district_id'                => '3273030',
                'village_id'                 => '3273030002',
                'kode_pos'                    => '40134',
                'no_telepon'                  => '022-2031234',
                'no_wa'                       => '08567891234',
                'email'                       => null,
                'golongan_darah'              => 'B+',
                'tinggi_badan'                => 165.00,
                'berat_badan'                 => 82.00,
                'riwayat_penyakit'            => 'Diabetes Melitus Tipe 2 (terdiagnosis 2018). Hipertensi grade I (2020). Kolesterol tinggi.',
                'alergi'                      => 'Tidak ada alergi obat yang diketahui.',
                'catatan_khusus'              => 'Pasien rutin kontrol bulanan. Monitoring HbA1c dan gula darah puasa setiap 3 bulan.',
                'wajah_terdaftar'             => true,
                'tanggal_registrasi_wajah'    => '2024-01-15 10:00:00',
                'foto_profil'                 => 'pasien/foto/soetrisno-hadiwibowo.jpg',
                'status_pasien'               => 'AKTIF',
                'keterangan_status'           => null,
                'didaftarkan_oleh'            => 3,
                'tanggal_registrasi'          => '2024-01-15 09:50:00',
                'created_at'                  => now(),
                'updated_at'                  => now(),
                'deleted_at'                  => null,
            ],
            [
                'id'                          => 4,
                'id_eksternal'                => 'EXT-PSN-20240004',
                'no_rekam_medis'              => 'RM-2024-00004',
                'nik'                         => '3273045507200044',
                'nama_lengkap'                => 'Anisa Zahra Putri',
                'jenis_kelamin'               => 'P',
                'tanggal_lahir'               => '2020-07-15',
                'tempat_lahir'                => 'Bandung',
                'usia'                        => 4,
                'alamat_lengkap'              => 'Jl. Siliwangi No. 99, Sukasari',
                'province_id'                => '32',
                'regency_id'                 => '3273',
                'district_id'                => '3273040',
                'village_id'                 => '3273040001',
                'kode_pos'                    => '40161',
                'no_telepon'                  => null,
                'no_wa'                       => '081398765432',
                'email'                       => null,
                'golongan_darah'              => 'A+',
                'tinggi_badan'                => 102.00,
                'berat_badan'                 => 16.50,
                'riwayat_penyakit'            => 'Riwayat kejang demam usia 18 bulan (sudah tidak berulang). Vaksinasi lengkap.',
                'alergi'                      => 'Alergi susu sapi (sudah toleran). Pantau bila diberi antibiotik golongan sefalosporin.',
                'catatan_khusus'              => 'Wali pasien: Ibu Rina Permatasari (0813-9876-5432). Pasien kooperatif bila diajak bicara pelan.',
                'wajah_terdaftar'             => false,
                'tanggal_registrasi_wajah'    => null,
                'foto_profil'                 => 'pasien/foto/anisa-zahra.jpg',
                'status_pasien'               => 'AKTIF',
                'keterangan_status'           => null,
                'didaftarkan_oleh'            => 4,
                'tanggal_registrasi'          => '2024-06-20 11:00:00',
                'created_at'                  => now(),
                'updated_at'                  => now(),
                'deleted_at'                  => null,
            ],
            [
                'id'                          => 5,
                'id_eksternal'                => 'EXT-PSN-20240005',
                'no_rekam_medis'              => 'RM-2024-00005',
                'nik'                         => '3173027809950055',
                'nama_lengkap'                => 'Rizki Aditya Permana',
                'jenis_kelamin'               => 'L',
                'tanggal_lahir'               => '1995-09-07',
                'tempat_lahir'                => 'Depok',
                'usia'                        => 29,
                'alamat_lengkap'              => 'Jl. Margonda Raya No. 456, Pancoran Mas',
                'province_id'                => '32',
                'regency_id'                 => '3276',
                'district_id'                => '3276010',
                'village_id'                 => '3276010001',
                'kode_pos'                    => '16431',
                'no_telepon'                  => null,
                'no_wa'                       => '089876543210',
                'email'                       => 'rizki.aditya95@gmail.com',
                'golongan_darah'              => 'O-',
                'tinggi_badan'                => 178.00,
                'berat_badan'                 => 70.00,
                'riwayat_penyakit'            => 'Tidak ada riwayat penyakit serius. Pernah tifoid tahun 2019.',
                'alergi'                      => 'Tidak ada.',
                'catatan_khusus'              => null,
                'wajah_terdaftar'             => true,
                'tanggal_registrasi_wajah'    => '2024-08-05 07:45:00',
                'foto_profil'                 => 'pasien/foto/rizki-aditya.jpg',
                'status_pasien'               => 'AKTIF',
                'keterangan_status'           => null,
                'didaftarkan_oleh'            => 2,
                'tanggal_registrasi'          => '2024-08-05 07:40:00',
                'created_at'                  => now(),
                'updated_at'                  => now(),
                'deleted_at'                  => null,
            ],
            [
                'id'                          => 6,
                'id_eksternal'                => 'EXT-PSN-20240006',
                'no_rekam_medis'              => 'RM-2024-00006',
                'nik'                         => '3578016604700066',
                'nama_lengkap'                => 'Sri Wahyuni Handayani',
                'jenis_kelamin'               => 'P',
                'tanggal_lahir'               => '1970-04-26',
                'tempat_lahir'                => 'Semarang',
                'usia'                        => 54,
                'alamat_lengkap'              => 'Jl. Pahlawan No. 55, RT 002/RW 008, Pleburan',
                'province_id'                => '33',
                'regency_id'                 => '3374',
                'district_id'                => '3374010',
                'village_id'                 => '3374010002',
                'kode_pos'                    => '50241',
                'no_telepon'                  => '024-8451234',
                'no_wa'                       => '082123456789',
                'email'                       => null,
                'golongan_darah'              => 'AB+',
                'tinggi_badan'                => 155.00,
                'berat_badan'                 => 68.00,
                'riwayat_penyakit'            => 'Hipertensi grade II sejak 2016. Pernah rawat inap karena stroke ringan tahun 2022 (sudah pulih).',
                'alergi'                      => 'Alergi aspirin (sesak napas). Hindari NSAIDs.',
                'catatan_khusus'              => 'Pasien rutin mengonsumsi amlodipin 10 mg dan candesartan 16 mg. Kontrol tekanan darah setiap 2 minggu.',
                'wajah_terdaftar'             => true,
                'tanggal_registrasi_wajah'    => '2024-02-20 08:00:00',
                'foto_profil'                 => 'pasien/foto/sri-wahyuni.jpg',
                'status_pasien'               => 'AKTIF',
                'keterangan_status'           => null,
                'didaftarkan_oleh'            => 3,
                'tanggal_registrasi'          => '2024-02-20 07:55:00',
                'created_at'                  => now(),
                'updated_at'                  => now(),
                'deleted_at'                  => null,
            ],
        ];

        DB::table('pasien')->truncate();
        DB::table('pasien')->insert($pasien);
        $this->command->info('     ✓ ' . count($pasien) . ' pasien berhasil di-seed.');
    }

    // =========================================================================
    // EMBEDDING WAJAH
    // =========================================================================
    private function seedEmbeddingWajah(): void
    {
        $this->command->info('  → Seeding embedding wajah...');

        // Simulasi vektor 128-dimensi (nilai float acak)
        $generateVector = fn() => json_encode(array_map(fn() => round(mt_rand(-100, 100) / 100, 6), range(1, 128)));

        $embeddings = [
            [
                'pasien_id'                 => 1,
                'id_eksternal'              => 'EXT-PSN-20240001',
                'vektor_embedding'          => $generateVector(),
                'dimensi_vektor'            => 128,
                'model_encoding'            => 'dlib',
                'versi_model'               => 'dlib-v19.22',
                'skor_kepercayaan'          => 97.83,
                'kualitas_gambar'           => 'SANGAT_BAIK',
                'jumlah_wajah_terdeteksi'   => 1,
                'validasi_passed'           => true,
                'catatan_validasi'          => 'Wajah terdeteksi jelas. Pencahayaan optimal.',
                'resolusi_gambar'           => '1280x720',
                'koordinat_wajah'           => json_encode(['x' => 320, 'y' => 80, 'width' => 240, 'height' => 300]),
                'ukuran_gambar_kb'          => 245.50,
                'status_embedding'          => 'AKTIF',
                'tanggal_registrasi'        => '2024-03-01 08:30:00',
                'tanggal_update_terakhir'   => null,
                'didaftarkan_oleh'          => 2,
                'ip_address'               => '192.168.1.10',
                'user_agent'               => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
                'total_dikenali'            => 48,
                'terakhir_dikenali'         => '2026-03-10 09:15:00',
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'pasien_id'                 => 2,
                'id_eksternal'              => 'EXT-PSN-20240002',
                'vektor_embedding'          => $generateVector(),
                'dimensi_vektor'            => 128,
                'model_encoding'            => 'dlib',
                'versi_model'               => 'dlib-v19.22',
                'skor_kepercayaan'          => 95.10,
                'kualitas_gambar'           => 'BAIK',
                'jumlah_wajah_terdeteksi'   => 1,
                'validasi_passed'           => true,
                'catatan_validasi'          => 'Wajah terdeteksi baik. Sedikit backlight dari jendela.',
                'resolusi_gambar'           => '1280x720',
                'koordinat_wajah'           => json_encode(['x' => 290, 'y' => 60, 'width' => 220, 'height' => 280]),
                'ukuran_gambar_kb'          => 218.30,
                'status_embedding'          => 'AKTIF',
                'tanggal_registrasi'        => '2024-04-10 09:15:00',
                'tanggal_update_terakhir'   => null,
                'didaftarkan_oleh'          => 2,
                'ip_address'               => '192.168.1.11',
                'user_agent'               => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
                'total_dikenali'            => 22,
                'terakhir_dikenali'         => '2026-02-28 10:00:00',
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'pasien_id'                 => 3,
                'id_eksternal'              => 'EXT-PSN-20240003',
                'vektor_embedding'          => $generateVector(),
                'dimensi_vektor'            => 128,
                'model_encoding'            => 'facenet',
                'versi_model'               => 'facenet-v20180402',
                'skor_kepercayaan'          => 91.45,
                'kualitas_gambar'           => 'BAIK',
                'jumlah_wajah_terdeteksi'   => 1,
                'validasi_passed'           => true,
                'catatan_validasi'          => 'Wajah terdeteksi. Pasien mengenakan kacamata, embedding tetap valid.',
                'resolusi_gambar'           => '640x480',
                'koordinat_wajah'           => json_encode(['x' => 150, 'y' => 50, 'width' => 200, 'height' => 250]),
                'ukuran_gambar_kb'          => 112.00,
                'status_embedding'          => 'AKTIF',
                'tanggal_registrasi'        => '2024-01-15 10:00:00',
                'tanggal_update_terakhir'   => '2025-06-01 08:00:00',
                'didaftarkan_oleh'          => 3,
                'ip_address'               => '192.168.1.15',
                'user_agent'               => 'Mozilla/5.0 (Linux; Android 12)',
                'total_dikenali'            => 130,
                'terakhir_dikenali'         => '2026-03-11 08:55:00',
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'pasien_id'                 => 5,
                'id_eksternal'              => 'EXT-PSN-20240005',
                'vektor_embedding'          => $generateVector(),
                'dimensi_vektor'            => 128,
                'model_encoding'            => 'dlib',
                'versi_model'               => 'dlib-v19.22',
                'skor_kepercayaan'          => 98.70,
                'kualitas_gambar'           => 'SANGAT_BAIK',
                'jumlah_wajah_terdeteksi'   => 1,
                'validasi_passed'           => true,
                'catatan_validasi'          => 'Wajah sangat jelas. Pencahayaan dan posisi ideal.',
                'resolusi_gambar'           => '1920x1080',
                'koordinat_wajah'           => json_encode(['x' => 700, 'y' => 100, 'width' => 280, 'height' => 340]),
                'ukuran_gambar_kb'          => 520.80,
                'status_embedding'          => 'AKTIF',
                'tanggal_registrasi'        => '2024-08-05 07:45:00',
                'tanggal_update_terakhir'   => null,
                'didaftarkan_oleh'          => 2,
                'ip_address'               => '192.168.1.20',
                'user_agent'               => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)',
                'total_dikenali'            => 11,
                'terakhir_dikenali'         => '2026-03-09 07:30:00',
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'pasien_id'                 => 6,
                'id_eksternal'              => 'EXT-PSN-20240006',
                'vektor_embedding'          => $generateVector(),
                'dimensi_vektor'            => 128,
                'model_encoding'            => 'dlib',
                'versi_model'               => 'dlib-v19.22',
                'skor_kepercayaan'          => 89.20,
                'kualitas_gambar'           => 'CUKUP',
                'jumlah_wajah_terdeteksi'   => 1,
                'validasi_passed'           => true,
                'catatan_validasi'          => 'Kualitas cukup. Disarankan update foto dengan pencahayaan lebih baik.',
                'resolusi_gambar'           => '640x480',
                'koordinat_wajah'           => json_encode(['x' => 100, 'y' => 40, 'width' => 180, 'height' => 220]),
                'ukuran_gambar_kb'          => 95.40,
                'status_embedding'          => 'PERLU_UPDATE',
                'tanggal_registrasi'        => '2024-02-20 08:00:00',
                'tanggal_update_terakhir'   => null,
                'didaftarkan_oleh'          => 3,
                'ip_address'               => '192.168.1.12',
                'user_agent'               => 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0)',
                'total_dikenali'            => 75,
                'terakhir_dikenali'         => '2026-03-10 14:00:00',
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
        ];

        DB::table('embedding_wajah')->truncate();
        DB::table('embedding_wajah')->insert($embeddings);
        $this->command->info('     ✓ ' . count($embeddings) . ' embedding wajah berhasil di-seed.');
    }

    // =========================================================================
    // PEMERIKSAAN KESEHATAN
    // =========================================================================
    private function seedPemeriksaanKesehatan(): void
    {
        $this->command->info('  → Seeding pemeriksaan kesehatan...');

        $pemeriksaan = [
            [
                'id'                        => 1,
                'kode_pemeriksaan'          => 'CHK-20260310-0001',
                'pasien_id'                 => 1,
                'id_eksternal_pasien'       => 'EXT-PSN-20240001',
                'embedding_wajah_id'        => 1,
                'teridentifikasi_wajah'     => true,
                'skor_pengenalan_wajah'     => 97.20,
                'catatan_pengenalan'        => 'Wajah dikenali dengan skor sangat tinggi.',
                'suhu_tubuh'                => 36.8,
                'kategori_suhu'             => 'NORMAL',
                'status_kesehatan'          => 'SEHAT',
                'detak_jantung'             => 78,
                'tekanan_darah_sistol'      => 120,
                'tekanan_darah_diastol'     => 80,
                'saturasi_oksigen'          => 99,
                'berat_badan_saat_ini'      => 75.5,
                'keluhan_utama'             => 'Tidak ada keluhan. Pemeriksaan rutin.',
                'gejala_lain'               => json_encode([]),
                'catatan_petugas'           => 'Kondisi umum baik. Pasien tampak sehat dan bugar.',
                'analisis_ai_selesai'       => true,
                'notifikasi_terkirim'       => true,
                'tindakan_yang_dilakukan'   => 'Pemeriksaan tanda vital.',
                'rekomendasi'               => 'Pertahankan pola hidup sehat. Konsumsi air putih minimal 2 liter/hari.',
                'dokter_id'                 => 1,
                'perlu_review_dokter'       => false,
                'sudah_direview_dokter'     => false,
                'waktu_review_dokter'       => null,
                'diagnosis_dokter'          => null,
                'catatan_dokter'            => null,
                'resep_obat'                => null,
                'waktu_pemeriksaan'         => '2026-03-10 08:30:00',
                'diperiksa_oleh'            => 2,
                'lokasi_pemeriksaan'        => 'Poli Umum — Lantai 1',
                'jenis_pemeriksaan'         => 'RUTIN',
                'status_pemeriksaan'        => 'SELESAI',
                'ip_address'               => '192.168.1.10',
                'durasi_pemeriksaan'        => 480.00,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'id'                        => 2,
                'kode_pemeriksaan'          => 'CHK-20260310-0002',
                'pasien_id'                 => 3,
                'id_eksternal_pasien'       => 'EXT-PSN-20240003',
                'embedding_wajah_id'        => 3,
                'teridentifikasi_wajah'     => true,
                'skor_pengenalan_wajah'     => 91.10,
                'catatan_pengenalan'        => 'Wajah dikenali. Kacamata tidak mempengaruhi akurasi.',
                'suhu_tubuh'                => 37.2,
                'kategori_suhu'             => 'NORMAL',
                'status_kesehatan'          => 'PERLU_PERHATIAN',
                'detak_jantung'             => 84,
                'tekanan_darah_sistol'      => 145,
                'tekanan_darah_diastol'     => 93,
                'saturasi_oksigen'          => 97,
                'berat_badan_saat_ini'      => 83.5,
                'keluhan_utama'             => 'Kepala pusing, mata berkunang-kunang sejak kemarin sore.',
                'gejala_lain'               => json_encode(['pusing', 'mata berkunang-kunang', 'tengkuk kaku']),
                'catatan_petugas'           => 'Tekanan darah pasien cukup tinggi. Pasien lupa minum obat hipertensi tadi pagi.',
                'analisis_ai_selesai'       => true,
                'notifikasi_terkirim'       => true,
                'tindakan_yang_dilakukan'   => 'Pemeriksaan tanda vital. Diberikan amlodipin 10 mg untuk hari ini.',
                'rekomendasi'               => 'Konsultasi ke dokter spesialis penyakit dalam. Pantau tekanan darah 2x sehari.',
                'dokter_id'                 => 3,
                'perlu_review_dokter'       => true,
                'sudah_direview_dokter'     => true,
                'waktu_review_dokter'       => '2026-03-10 11:00:00',
                'diagnosis_dokter'          => 'Hipertensi esensial grade II, tidak terkontrol. Riwayat DM Tipe 2.',
                'catatan_dokter'            => 'Pasien diingatkan untuk minum obat secara teratur. Jadwal kontrol dipercepat.',
                'resep_obat'                => "1. Amlodipin 10 mg — 1x1 (pagi)\n2. Candesartan 16 mg — 1x1 (malam)\n3. Metformin 500 mg — 3x1 (setelah makan)",
                'waktu_pemeriksaan'         => '2026-03-10 09:00:00',
                'diperiksa_oleh'            => 3,
                'lokasi_pemeriksaan'        => 'Poli Penyakit Dalam — Lantai 2',
                'jenis_pemeriksaan'         => 'KONTROL',
                'status_pemeriksaan'        => 'SELESAI',
                'ip_address'               => '192.168.1.15',
                'durasi_pemeriksaan'        => 1200.00,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'id'                        => 3,
                'kode_pemeriksaan'          => 'CHK-20260311-0001',
                'pasien_id'                 => 5,
                'id_eksternal_pasien'       => 'EXT-PSN-20240005',
                'embedding_wajah_id'        => 4,
                'teridentifikasi_wajah'     => true,
                'skor_pengenalan_wajah'     => 98.50,
                'catatan_pengenalan'        => 'Pengenalan sempurna.',
                'suhu_tubuh'                => 38.7,
                'kategori_suhu'             => 'DEMAM_RINGAN',
                'status_kesehatan'          => 'PERLU_PEMERIKSAAN_LANJUT',
                'detak_jantung'             => 95,
                'tekanan_darah_sistol'      => 118,
                'tekanan_darah_diastol'     => 76,
                'saturasi_oksigen'          => 98,
                'berat_badan_saat_ini'      => 69.8,
                'keluhan_utama'             => 'Demam sejak 2 hari lalu, disertai nyeri kepala dan nyeri sendi.',
                'gejala_lain'               => json_encode(['demam', 'nyeri kepala', 'nyeri sendi', 'lemas', 'mual']),
                'catatan_petugas'           => 'Pasien tampak lemas. Suhu 38.7°C. Perlu pemeriksaan darah untuk menyingkirkan DBD.',
                'analisis_ai_selesai'       => true,
                'notifikasi_terkirim'       => true,
                'tindakan_yang_dilakukan'   => 'Pemeriksaan tanda vital. Permintaan pemeriksaan darah lengkap dan NS1 antigen.',
                'rekomendasi'               => 'Perbanyak minum cairan. Pantau tanda bahaya DBD. Kembali bila muncul bintik merah atau mimisan.',
                'dokter_id'                 => 1,
                'perlu_review_dokter'       => true,
                'sudah_direview_dokter'     => false,
                'waktu_review_dokter'       => null,
                'diagnosis_dokter'          => null,
                'catatan_dokter'            => null,
                'resep_obat'                => null,
                'waktu_pemeriksaan'         => '2026-03-11 07:30:00',
                'diperiksa_oleh'            => 2,
                'lokasi_pemeriksaan'        => 'Poli Umum — Lantai 1',
                'jenis_pemeriksaan'         => 'KELUHAN',
                'status_pemeriksaan'        => 'SELESAI',
                'ip_address'               => '192.168.1.20',
                'durasi_pemeriksaan'        => 900.00,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'id'                        => 4,
                'kode_pemeriksaan'          => 'CHK-20260311-0002',
                'pasien_id'                 => 4,
                'id_eksternal_pasien'       => 'EXT-PSN-20240004',
                'embedding_wajah_id'        => null,
                'teridentifikasi_wajah'     => false,
                'skor_pengenalan_wajah'     => null,
                'catatan_pengenalan'        => 'Wajah belum terdaftar. Identifikasi manual via nomor rekam medis.',
                'suhu_tubuh'                => 38.2,
                'kategori_suhu'             => 'DEMAM_RINGAN',
                'status_kesehatan'          => 'PERLU_PERHATIAN',
                'detak_jantung'             => 102,
                'tekanan_darah_sistol'      => null,
                'tekanan_darah_diastol'     => null,
                'saturasi_oksigen'          => 98,
                'berat_badan_saat_ini'      => 16.8,
                'keluhan_utama'             => 'Panas sejak semalam, rewel, tidak mau makan.',
                'gejala_lain'               => json_encode(['demam', 'rewel', 'nafsu makan menurun', 'hidung meler']),
                'catatan_petugas'           => 'Pasien balita usia 4 tahun. Diantar ibunya. Suhu 38.2°C. Belum ada ruam.',
                'analisis_ai_selesai'       => true,
                'notifikasi_terkirim'       => true,
                'tindakan_yang_dilakukan'   => 'Pemeriksaan fisik oleh dokter spesialis anak. Kompres hangat disarankan.',
                'rekomendasi'               => 'Berikan parasetamol sirup sesuai dosis berat badan. Perbanyak asupan cairan.',
                'dokter_id'                 => 2,
                'perlu_review_dokter'       => true,
                'sudah_direview_dokter'     => true,
                'waktu_review_dokter'       => '2026-03-11 09:30:00',
                'diagnosis_dokter'          => 'ISPA (Infeksi Saluran Pernapasan Atas) ringan.',
                'catatan_dokter'            => 'Tidak ditemukan tanda infeksi berat. Tidak perlu antibiotik saat ini. Observasi 3 hari.',
                'resep_obat'                => "1. Parasetamol sirup 120 mg/5ml — 3x1 cth (bila panas >38°C)\n2. CTM sirup — 2x1 cth\n3. Zinc sirup — 1x1 cth (20 mg)",
                'waktu_pemeriksaan'         => '2026-03-11 09:00:00',
                'diperiksa_oleh'            => 4,
                'lokasi_pemeriksaan'        => 'Poli Anak — Lantai 1',
                'jenis_pemeriksaan'         => 'KELUHAN',
                'status_pemeriksaan'        => 'SELESAI',
                'ip_address'               => '192.168.1.25',
                'durasi_pemeriksaan'        => 720.00,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
        ];

        DB::table('pemeriksaan_kesehatan')->truncate();
        DB::table('pemeriksaan_kesehatan')->insert($pemeriksaan);
        $this->command->info('     ✓ ' . count($pemeriksaan) . ' pemeriksaan kesehatan berhasil di-seed.');
    }

    // =========================================================================
    // ANALISIS AI
    // =========================================================================
    private function seedAnalisisAI(): void
    {
        $this->command->info('  → Seeding analisis AI...');

        $analisis = [
            [
                'pemeriksaan_kesehatan_id'  => 1,
                'pasien_id'                 => 1,
                'data_input'                => json_encode([
                    'suhu_tubuh' => 36.8, 'detak_jantung' => 78,
                    'tekanan_darah' => '120/80', 'saturasi_oksigen' => 99,
                    'keluhan' => 'Tidak ada keluhan', 'usia' => 36, 'jenis_kelamin' => 'L',
                ]),
                'prompt_yang_dikirim'       => 'Analisis kondisi kesehatan pasien laki-laki usia 36 tahun dengan suhu tubuh 36.8°C, tekanan darah 120/80 mmHg, detak jantung 78 bpm, SpO2 99%. Pasien tidak memiliki keluhan.',
                'penjelasan_kondisi'        => 'Kondisi kesehatan pasien secara keseluruhan berada dalam parameter normal. Suhu tubuh 36,8°C menunjukkan kondisi afebris (tidak demam). Tekanan darah 120/80 mmHg tergolong optimal sesuai kategori JNC-8. Detak jantung 78 bpm berada pada rentang normal (60–100 bpm). Saturasi oksigen 99% mengindikasikan fungsi respirasi dan sirkulasi yang sangat baik.',
                'saran_umum'                => 'Pertahankan gaya hidup sehat: tidur cukup 7–8 jam, olahraga aerobik minimal 150 menit/minggu, konsumsi sayur dan buah 5 porsi/hari, serta hindari merokok dan alkohol.',
                'kapan_harus_ke_dokter'     => 'Segera ke dokter bila mengalami demam >38°C, nyeri dada, sesak napas, atau gejala tidak biasa lainnya.',
                'gejala_yang_dianalisis'    => json_encode([]),
                'tingkat_keparahan_ai'      => 'NORMAL',
                'rekomendasi_ai'            => 'ISTIRAHAT_CUKUP',
                'model_ai'                  => 'gemini-1.5-pro',
                'versi_model'               => 'gemini-1.5-pro-002',
                'total_tokens'              => 512,
                'waktu_proses'              => 1.842,
                'biaya_estimasi'            => 0.000768,
                'status_analisis'           => 'BERHASIL',
                'error_message'             => null,
                'retry_count'               => 0,
                'kualitas_respons'          => 'SANGAT_BAIK',
                'ditinjau_dokter'           => false,
                'catatan_dokter'            => null,
                'rating_akurasi'            => 5,
                'is_helpful'                => true,
                'waktu_analisis'            => '2026-03-10 08:32:00',
                'diminta_oleh'              => 2,
                'ip_address'               => '192.168.1.10',
                'raw_response'              => null,
                'metadata_tambahan'         => json_encode(['language' => 'id', 'region' => 'ID']),
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'pemeriksaan_kesehatan_id'  => 2,
                'pasien_id'                 => 3,
                'data_input'                => json_encode([
                    'suhu_tubuh' => 37.2, 'detak_jantung' => 84,
                    'tekanan_darah' => '145/93', 'saturasi_oksigen' => 97,
                    'keluhan' => 'Kepala pusing, mata berkunang-kunang, tengkuk kaku',
                    'usia' => 59, 'jenis_kelamin' => 'L',
                    'riwayat' => 'DM Tipe 2, Hipertensi, Kolesterol tinggi',
                ]),
                'prompt_yang_dikirim'       => 'Analisis kondisi kesehatan pasien laki-laki usia 59 tahun dengan riwayat DM Tipe 2 dan Hipertensi. Suhu 37.2°C, TD 145/93 mmHg, HR 84 bpm, SpO2 97%. Keluhan: kepala pusing, mata berkunang, tengkuk kaku.',
                'penjelasan_kondisi'        => 'Pasien menunjukkan tekanan darah yang tidak terkontrol (145/93 mmHg), masuk kategori Hipertensi Grade II menurut JNC-8. Gejala pusing, mata berkunang, dan tengkuk kaku merupakan manifestasi klinis tipikal dari hipertensi tidak terkontrol yang perlu segera ditangani. Saturasi oksigen 97% masih dalam batas aman namun perlu dipantau. Riwayat DM dan kolesterol meningkatkan risiko kardiovaskular secara kumulatif.',
                'saran_umum'                => 'Minum obat antihipertensi secara rutin tanpa melewatkan dosis. Batasi konsumsi garam <2g/hari. Lakukan pemantauan tekanan darah mandiri 2x sehari (pagi dan malam). Hindari stress berat dan aktivitas fisik berat sementara TD belum terkontrol.',
                'kapan_harus_ke_dokter'     => 'Segera ke IGD bila: TD >180/120 mmHg, nyeri kepala sangat hebat mendadak (thunderclap headache), gangguan penglihatan mendadak, kelemahan satu sisi tubuh, atau bicara pelo — gejala-gejala ini dapat mengindikasikan krisis hipertensi atau stroke.',
                'gejala_yang_dianalisis'    => json_encode(['pusing', 'mata berkunang-kunang', 'tengkuk kaku']),
                'tingkat_keparahan_ai'      => 'SEDANG',
                'rekomendasi_ai'            => 'KONSULTASI_DOKTER',
                'model_ai'                  => 'gemini-1.5-pro',
                'versi_model'               => 'gemini-1.5-pro-002',
                'total_tokens'              => 874,
                'waktu_proses'              => 2.315,
                'biaya_estimasi'            => 0.001311,
                'status_analisis'           => 'BERHASIL',
                'error_message'             => null,
                'retry_count'               => 0,
                'kualitas_respons'          => 'SANGAT_BAIK',
                'ditinjau_dokter'           => true,
                'catatan_dokter'            => 'Analisis AI akurat. Saya sependapat dengan rekomendasi konsultasi dokter.',
                'rating_akurasi'            => 5,
                'is_helpful'                => true,
                'waktu_analisis'            => '2026-03-10 09:05:00',
                'diminta_oleh'              => 3,
                'ip_address'               => '192.168.1.15',
                'raw_response'              => null,
                'metadata_tambahan'         => json_encode(['language' => 'id', 'region' => 'ID']),
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'pemeriksaan_kesehatan_id'  => 3,
                'pasien_id'                 => 5,
                'data_input'                => json_encode([
                    'suhu_tubuh' => 38.7, 'detak_jantung' => 95,
                    'tekanan_darah' => '118/76', 'saturasi_oksigen' => 98,
                    'keluhan' => 'Demam 2 hari, nyeri kepala, nyeri sendi, lemas, mual',
                    'usia' => 29, 'jenis_kelamin' => 'L',
                ]),
                'prompt_yang_dikirim'       => 'Analisis kondisi pasien laki-laki 29 tahun dengan demam 38.7°C selama 2 hari. Gejala: nyeri kepala, nyeri sendi seluruh tubuh, lemas, mual. TD 118/76 mmHg, HR 95 bpm, SpO2 98%. Wilayah endemis DBD.',
                'penjelasan_kondisi'        => 'Gambaran klinis sangat sugestif mengarah pada kemungkinan Demam Berdarah Dengue (DBD) atau demam dengue. Trias gejala klasik — demam tinggi mendadak, nyeri sendi/otot berat (breakbone fever), dan nyeri kepala retrofrontal — merupakan tanda khas infeksi virus dengue. Pola demam pelana kuda khas dengue perlu dipantau. Meskipun SpO2 masih baik, penurunan trombosit yang cepat dapat terjadi pada hari ke-3–5.',
                'saran_umum'                => 'Perbanyak konsumsi cairan (minimal 2–2,5 liter/hari) termasuk jus jambu biji. Istirahat total. Hindari aspirin dan ibuprofen karena berisiko pendarahan. Gunakan parasetamol untuk penurun panas.',
                'kapan_harus_ke_dokter'     => 'SEGERA ke IGD bila muncul: bintik merah di kulit (petekie), mimisan atau gusi berdarah, muntah terus-menerus, nyeri perut hebat, gelisah atau mengantuk berlebih, atau tangan-kaki terasa dingin. Ini adalah tanda warning signs DBD.',
                'gejala_yang_dianalisis'    => json_encode(['demam', 'nyeri kepala', 'nyeri sendi', 'lemas', 'mual']),
                'tingkat_keparahan_ai'      => 'SEDANG',
                'rekomendasi_ai'            => 'PERIKSA_SEGERA',
                'model_ai'                  => 'gemini-1.5-pro',
                'versi_model'               => 'gemini-1.5-pro-002',
                'total_tokens'              => 968,
                'waktu_proses'              => 2.890,
                'biaya_estimasi'            => 0.001452,
                'status_analisis'           => 'BERHASIL',
                'error_message'             => null,
                'retry_count'               => 0,
                'kualitas_respons'          => 'SANGAT_BAIK',
                'ditinjau_dokter'           => false,
                'catatan_dokter'            => null,
                'rating_akurasi'            => null,
                'is_helpful'                => null,
                'waktu_analisis'            => '2026-03-11 07:35:00',
                'diminta_oleh'              => 2,
                'ip_address'               => '192.168.1.20',
                'raw_response'              => null,
                'metadata_tambahan'         => json_encode(['language' => 'id', 'region' => 'ID']),
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
        ];

        DB::table('analisis_ai')->truncate();
        DB::table('analisis_ai')->insert($analisis);
        $this->command->info('     ✓ ' . count($analisis) . ' analisis AI berhasil di-seed.');
    }

    // =========================================================================
    // DOKTER PASIEN (sesi konsultasi)
    // =========================================================================
    private function seedDokterPasien(): void
    {
        $this->command->info('  → Seeding relasi dokter-pasien (sesi konsultasi)...');

        $sesi = [
            [
                'id'                        => 1,
                'dokter_id'                 => 1,
                'pasien_id'                 => 1,
                'nomor_konsultasi'          => 'KON-20260310-0001',
                'pemeriksaan_id'            => 1,
                'keluhan_pasien'            => 'Tidak ada keluhan. Kunjungan rutin tahunan.',
                'lama_keluhan'              => '-',
                'status_konsultasi'         => 'LUNAS',
                'waktu_mulai_konsul'        => '2026-03-10 08:45:00',
                'waktu_selesai_konsul'      => '2026-03-10 09:00:00',
                'tanggal_mulai_menangani'   => '2026-03-10',
                'tanggal_selesai_menangani' => '2026-03-10',
                'status_penanganan'         => 'SELESAI',
                'diagnosis_utama'           => 'Sehat — tidak ditemukan kelainan.',
                'rencana_perawatan'         => 'Pemeriksaan rutin berikutnya dijadwalkan 6 bulan kemudian.',
                'jumlah_kunjungan'          => 1,
                'tanggal_kontrol_berikutnya'=> '2026-09-10',
                'catatan'                   => 'Pasien kooperatif dan disiplin dalam menjaga kesehatan.',
                'resep_dokter'              => null,
                'catatan_dokter'            => 'Kondisi pasien sangat baik. Tidak ada temuan klinis bermakna.',
                'pemeriksaan_fisik'         => 'Umum: Compos mentis, gizi baik. Thorax: Bunyi napas vesikuler, tidak ada ronki/wheezing. Abdomen: Datar, supel, BU (+) normal.',
                'tindakan_dokter'           => 'Pemeriksaan fisik menyeluruh.',
                'anjuran_dokter'            => 'Pertahankan gaya hidup sehat. Olahraga teratur minimal 3x/minggu. Cek lab tahunan dianjurkan.',
                'berkas_dokter'             => null,
                'diserahkan_ke_admin'       => true,
                'waktu_serah_berkas'        => '2026-03-10 09:05:00',
                'didaftarkan_oleh'          => 2,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'id'                        => 2,
                'dokter_id'                 => 3,
                'pasien_id'                 => 3,
                'nomor_konsultasi'          => 'KON-20260310-0002',
                'pemeriksaan_id'            => 2,
                'keluhan_pasien'            => 'Kepala pusing dan mata berkunang-kunang sejak kemarin. Lupa minum obat hipertensi tadi pagi.',
                'lama_keluhan'              => '± 1 hari',
                'status_konsultasi'         => 'LUNAS',
                'waktu_mulai_konsul'        => '2026-03-10 10:30:00',
                'waktu_selesai_konsul'      => '2026-03-10 11:15:00',
                'tanggal_mulai_menangani'   => '2024-01-15',
                'tanggal_selesai_menangani' => null,
                'status_penanganan'         => 'AKTIF',
                'diagnosis_utama'           => 'Hipertensi esensial grade II tidak terkontrol. DM Tipe 2 terkontrol sedang.',
                'rencana_perawatan'         => 'Optimasi regimen antihipertensi. Monitoring HbA1c setiap 3 bulan. Edukasi kepatuhan minum obat.',
                'jumlah_kunjungan'          => 28,
                'tanggal_kontrol_berikutnya'=> '2026-03-24',
                'catatan'                   => 'Pasien perlu pengawasan ketat. Risiko kardiovaskular tinggi.',
                'resep_dokter'              => "1. Amlodipin 10 mg — 1x1 (pagi)\n2. Candesartan 16 mg — 1x1 (malam)\n3. Metformin 500 mg — 3x1 (setelah makan)\n4. Simvastatin 20 mg — 1x1 (malam)",
                'catatan_dokter'            => 'Pasien diedukasi ulang mengenai pentingnya kepatuhan pengobatan. Risiko stroke akan meningkat signifikan bila hipertensi tidak terkontrol. Dianjurkan memasang pengingat obat di HP.',
                'pemeriksaan_fisik'         => 'TD: 145/93 mmHg (kanan). Nadi: 84x/menit, regular. Mata: Konjungtiva tidak pucat, tidak ikterik. Leher: Tidak ada pembesaran KGB. Thorax: Kardiomegali tidak terdeteksi secara perkusi. Abdomen: Dalam batas normal.',
                'tindakan_dokter'           => 'Pemeriksaan fisik lengkap. Edukasi kepatuhan obat. Permintaan lab: GDP, GD2PP, HbA1c, lipid profil.',
                'anjuran_dokter'            => 'Diet DASH (rendah garam, kaya buah-sayur). Hindari makanan tinggi lemak jenuh. Berjalan kaki ringan 30 menit/hari bila TD sudah terkontrol.',
                'berkas_dokter'             => json_encode([
                    ['nama' => 'Hasil Lab Maret 2026.pdf', 'path' => 'berkas/konsultasi/2/lab-maret-2026.pdf', 'tipe' => 'application/pdf', 'ukuran_kb' => 145.2, 'upload_at' => '2026-03-10 11:00:00'],
                ]),
                'diserahkan_ke_admin'       => true,
                'waktu_serah_berkas'        => '2026-03-10 11:20:00',
                'didaftarkan_oleh'          => 3,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'id'                        => 3,
                'dokter_id'                 => 2,
                'pasien_id'                 => 4,
                'nomor_konsultasi'          => 'KON-20260311-0001',
                'pemeriksaan_id'            => 4,
                'keluhan_pasien'            => 'Demam sejak semalam, rewel, tidak mau makan. Hidung meler.',
                'lama_keluhan'              => '± 12 jam',
                'status_konsultasi'         => 'LUNAS',
                'waktu_mulai_konsul'        => '2026-03-11 09:15:00',
                'waktu_selesai_konsul'      => '2026-03-11 09:40:00',
                'tanggal_mulai_menangani'   => '2026-03-11',
                'tanggal_selesai_menangani' => null,
                'status_penanganan'         => 'AKTIF',
                'diagnosis_utama'           => 'ISPA ringan. Rhinitis akut.',
                'rencana_perawatan'         => 'Terapi simtomatik. Observasi 3 hari. Kembali bila demam tidak turun atau kondisi memburuk.',
                'jumlah_kunjungan'          => 3,
                'tanggal_kontrol_berikutnya'=> '2026-03-14',
                'catatan'                   => 'Pasien balita. Diantar ibu kandung. Orang tua kooperatif dan memahami instruksi perawatan.',
                'resep_dokter'              => "1. Parasetamol sirup 120mg/5ml — 3x1 cth (bila T >38°C)\n2. CTM sirup — 2x1/2 cth\n3. Zinc sirup 20mg — 1x1 cth\n4. Vitamin C sirup — 1x1 cth",
                'catatan_dokter'            => 'Tidak ada tanda infeksi berat. Tidak ada indikasi antibiotik. Ibu pasien diinstruksikan untuk memantau tanda bahaya: sesak napas, bibir membiru, atau sulit dibangunkan.',
                'pemeriksaan_fisik'         => 'KU: Compos mentis, rewel, hidrasi cukup. T: 38.2°C. RR: 28x/menit. Nadi: 102x/menit. Mata: Tidak cekung. Faring: Hiperemis (+), tonsil T1-T1 tidak hiperemis. Paru: Vesikuler, tidak ada retraksi dinding dada.',
                'tindakan_dokter'           => 'Pemeriksaan fisik anak lengkap. Konseling orang tua mengenai tanda bahaya ISPA.',
                'anjuran_dokter'            => 'Berikan ASI/makan porsi kecil tapi sering. Jaga kebersihan tangan. Beri cukup istirahat. Gunakan humidifier bila ada.',
                'berkas_dokter'             => null,
                'diserahkan_ke_admin'       => true,
                'waktu_serah_berkas'        => '2026-03-11 09:45:00',
                'didaftarkan_oleh'          => 4,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'id'                        => 4,
                'dokter_id'                 => 1,
                'pasien_id'                 => 5,
                'nomor_konsultasi'          => 'KON-20260311-0002',
                'pemeriksaan_id'            => 3,
                'keluhan_pasien'            => 'Demam 2 hari tidak turun, nyeri sendi parah, sangat lemas.',
                'lama_keluhan'              => '2 hari',
                'status_konsultasi'         => 'SELESAI_KONSUL',
                'waktu_mulai_konsul'        => '2026-03-11 08:00:00',
                'waktu_selesai_konsul'      => null,
                'tanggal_mulai_menangani'   => '2026-03-11',
                'tanggal_selesai_menangani' => null,
                'status_penanganan'         => 'AKTIF',
                'diagnosis_utama'           => 'Suspek Demam Dengue / DBD — perlu konfirmasi laboratorium.',
                'rencana_perawatan'         => 'Pemeriksaan darah lengkap + NS1 antigen. Observasi ketat selama fase kritis (hari ke-3 s/d 7).',
                'jumlah_kunjungan'          => 1,
                'tanggal_kontrol_berikutnya'=> '2026-03-12',
                'catatan'                   => 'Pasien diminta kembali esok hari dengan membawa hasil lab untuk evaluasi trombosit.',
                'resep_dokter'              => "1. Parasetamol 500 mg — 3x1 (bila panas, BUKAN aspirin/ibuprofen)\n2. ORS/oralit — minum 2–2,5 liter/hari\n3. Tablet Fe+Vit C — 1x1 (pendukung)",
                'catatan_dokter'            => 'Pasien diedukasi tanda bahaya DBD. Diminta segera ke IGD bila muncul warning signs. Hasil NS1 ditunggu untuk konfirmasi.',
                'pemeriksaan_fisik'         => 'KU: Lemah, compos mentis. T: 38.7°C. Nadi: 95x/menit. TD: 118/76. Mata: Konjungtiva tidak pucat. Tourniquet test: negatif. Kulit: Tidak ada petekie. Abdomen: Nyeri tekan epigastrium (+) ringan.',
                'tindakan_dokter'           => 'Pemeriksaan fisik. Permintaan lab CBC + NS1 antigen. Edukasi tanda bahaya DBD.',
                'anjuran_dokter'            => 'Bedrest total. Minum air putih, jus jambu biji, atau larutan elektrolit. Hindari aspirin dan ibuprofen. Pantau frekuensi buang air kecil sebagai indikator kecukupan hidrasi.',
                'berkas_dokter'             => null,
                'diserahkan_ke_admin'       => false,
                'waktu_serah_berkas'        => null,
                'didaftarkan_oleh'          => 2,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
        ];

        DB::table('dokter_pasien')->truncate();
        DB::table('dokter_pasien')->insert($sesi);
        $this->command->info('     ✓ ' . count($sesi) . ' sesi konsultasi berhasil di-seed.');
    }

    // =========================================================================
    // PEMBAYARAN
    // =========================================================================
    private function seedPembayaran(): void
    {
        $this->command->info('  → Seeding pembayaran...');

        $pembayaran = [
            [
                'dokter_pasien_id'          => 1,
                'pasien_id'                 => 1,
                'dokter_id'                 => 1,
                'nomor_invoice'             => 'INV-20260310-0001',
                'biaya_konsultasi'          => 75000.00,
                'biaya_tambahan'            => 0.00,
                'keterangan_biaya_tambahan' => null,
                'diskon'                    => 0.00,
                'total_bayar'               => 75000.00,
                'metode_pembayaran'         => 'TUNAI',
                'status_pembayaran'         => 'LUNAS',
                'qris_kode_unik'            => null,
                'qris_foto_bukti'           => null,
                'qris_waktu_upload_bukti'   => null,
                'tunai_diterima'            => 100000.00,
                'tunai_kembalian'           => 25000.00,
                'dikonfirmasi_oleh'         => 2,
                'waktu_konfirmasi'          => '2026-03-10 09:10:00',
                'catatan_admin'             => 'Pembayaran tunai diterima. Kembalian Rp 25.000.',
                'kuitansi_dicetak'          => true,
                'waktu_cetak_kuitansi'      => '2026-03-10 09:12:00',
                'dibuat_oleh'               => 2,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'dokter_pasien_id'          => 2,
                'pasien_id'                 => 3,
                'dokter_id'                 => 3,
                'nomor_invoice'             => 'INV-20260310-0002',
                'biaya_konsultasi'          => 200000.00,
                'biaya_tambahan'            => 50000.00,
                'keterangan_biaya_tambahan' => 'Biaya formulir permintaan pemeriksaan laboratorium.',
                'diskon'                    => 25000.00,
                'total_bayar'               => 225000.00,
                'metode_pembayaran'         => 'QRIS',
                'status_pembayaran'         => 'LUNAS',
                'qris_kode_unik'            => 'KLINIK-INV20260310-0002-225000',
                'qris_foto_bukti'           => 'pembayaran/bukti/inv-20260310-0002.jpg',
                'qris_waktu_upload_bukti'   => '2026-03-10 11:25:00',
                'tunai_diterima'            => null,
                'tunai_kembalian'           => null,
                'dikonfirmasi_oleh'         => 3,
                'waktu_konfirmasi'          => '2026-03-10 11:30:00',
                'catatan_admin'             => 'Pembayaran QRIS dikonfirmasi. Diskon loyalitas pasien langganan diterapkan.',
                'kuitansi_dicetak'          => true,
                'waktu_cetak_kuitansi'      => '2026-03-10 11:32:00',
                'dibuat_oleh'               => 3,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'dokter_pasien_id'          => 3,
                'pasien_id'                 => 4,
                'dokter_id'                 => 2,
                'nomor_invoice'             => 'INV-20260311-0001',
                'biaya_konsultasi'          => 150000.00,
                'biaya_tambahan'            => 0.00,
                'keterangan_biaya_tambahan' => null,
                'diskon'                    => 0.00,
                'total_bayar'               => 150000.00,
                'metode_pembayaran'         => 'TUNAI',
                'status_pembayaran'         => 'LUNAS',
                'qris_kode_unik'            => null,
                'qris_foto_bukti'           => null,
                'qris_waktu_upload_bukti'   => null,
                'tunai_diterima'            => 150000.00,
                'tunai_kembalian'           => 0.00,
                'dikonfirmasi_oleh'         => 4,
                'waktu_konfirmasi'          => '2026-03-11 09:50:00',
                'catatan_admin'             => 'Pembayaran tunai pas. Tidak ada kembalian.',
                'kuitansi_dicetak'          => true,
                'waktu_cetak_kuitansi'      => '2026-03-11 09:52:00',
                'dibuat_oleh'               => 4,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
            [
                'dokter_pasien_id'          => 4,
                'pasien_id'                 => 5,
                'dokter_id'                 => 1,
                'nomor_invoice'             => 'INV-20260311-0002',
                'biaya_konsultasi'          => 75000.00,
                'biaya_tambahan'            => 35000.00,
                'keterangan_biaya_tambahan' => 'Biaya formulir pemeriksaan darah lengkap + NS1 antigen.',
                'diskon'                    => 0.00,
                'total_bayar'               => 110000.00,
                'metode_pembayaran'         => 'QRIS',
                'status_pembayaran'         => 'MENUNGGU',
                'qris_kode_unik'            => 'KLINIK-INV20260311-0002-110000',
                'qris_foto_bukti'           => null,
                'qris_waktu_upload_bukti'   => null,
                'tunai_diterima'            => null,
                'tunai_kembalian'           => null,
                'dikonfirmasi_oleh'         => null,
                'waktu_konfirmasi'          => null,
                'catatan_admin'             => 'Menunggu konfirmasi pembayaran QRIS dari pasien.',
                'kuitansi_dicetak'          => false,
                'waktu_cetak_kuitansi'      => null,
                'dibuat_oleh'               => 2,
                'created_at'               => now(),
                'updated_at'               => now(),
            ],
        ];

        DB::table('pembayaran')->truncate();
        DB::table('pembayaran')->insert($pembayaran);
        $this->command->info('     ✓ ' . count($pembayaran) . ' data pembayaran berhasil di-seed.');
    }

    // =========================================================================
    // PENGATURAN SISTEM
    // =========================================================================
    private function seedPengaturanSistem(): void
    {
        $this->command->info('  → Seeding pengaturan sistem...');

        $pengaturan = [
            // ── UMUM ──────────────────────────────────────────────────────────
            [
                'kunci'             => 'NAMA_KLINIK',
                'kategori'          => 'UMUM',
                'nama_pengaturan'   => 'Nama Klinik',
                'deskripsi'         => 'Nama resmi klinik yang ditampilkan di seluruh sistem.',
                'nilai'             => 'Klinik Sehat Bersama',
                'nilai_integer'     => null, 'nilai_decimal' => null, 'nilai_boolean' => null, 'nilai_json' => null,
                'tipe_data'         => 'STRING',
                'aturan_validasi'   => 'required|string|max:100',
                'nilai_default'     => 'Klinik',
                'pilihan_nilai'     => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 1, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => 'Nama awal sistem.',
                'created_at'        => now(), 'updated_at' => now(),
            ],
            [
                'kunci'             => 'ALAMAT_KLINIK',
                'kategori'          => 'UMUM',
                'nama_pengaturan'   => 'Alamat Klinik',
                'deskripsi'         => 'Alamat lengkap klinik untuk keperluan kuitansi dan laporan.',
                'nilai'             => 'Jl. Kesehatan No. 1, Kecamatan Coblong, Kota Bandung, Jawa Barat 40134',
                'nilai_integer'     => null, 'nilai_decimal' => null, 'nilai_boolean' => null, 'nilai_json' => null,
                'tipe_data'         => 'TEXT',
                'aturan_validasi'   => 'required|string',
                'nilai_default'     => null, 'pilihan_nilai' => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 2, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],
            [
                'kunci'             => 'NO_TELEPON_KLINIK',
                'kategori'          => 'UMUM',
                'nama_pengaturan'   => 'Nomor Telepon Klinik',
                'deskripsi'         => 'Nomor telepon utama klinik.',
                'nilai'             => '022-2031111',
                'nilai_integer'     => null, 'nilai_decimal' => null, 'nilai_boolean' => null, 'nilai_json' => null,
                'tipe_data'         => 'STRING',
                'aturan_validasi'   => 'nullable|string|max:20',
                'nilai_default'     => null, 'pilihan_nilai' => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 3, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],
            [
                'kunci'             => 'JAM_OPERASIONAL',
                'kategori'          => 'UMUM',
                'nama_pengaturan'   => 'Jam Operasional Klinik',
                'deskripsi'         => 'Jam buka dan tutup klinik secara umum.',
                'nilai'             => null,
                'nilai_integer'     => null, 'nilai_decimal' => null, 'nilai_boolean' => null,
                'nilai_json'        => json_encode([
                    'senin_jumat' => ['buka' => '07:30', 'tutup' => '17:00'],
                    'sabtu'       => ['buka' => '08:00', 'tutup' => '13:00'],
                    'minggu'      => ['buka' => null,   'tutup' => null, 'libur' => true],
                ]),
                'tipe_data'         => 'JSON',
                'aturan_validasi'   => 'nullable|json',
                'nilai_default'     => null, 'pilihan_nilai' => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 4, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],

            // ── AI ────────────────────────────────────────────────────────────
            [
                'kunci'             => 'GEMINI_API_KEY',
                'kategori'          => 'AI',
                'nama_pengaturan'   => 'Google Gemini API Key',
                'deskripsi'         => 'API Key untuk mengakses layanan Google Gemini AI.',
                'nilai'             => 'AIza**********************************',
                'nilai_integer'     => null, 'nilai_decimal' => null, 'nilai_boolean' => null, 'nilai_json' => null,
                'tipe_data'         => 'STRING',
                'aturan_validasi'   => 'required|string',
                'nilai_default'     => null, 'pilihan_nilai' => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => true,
                'urutan'            => 10, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => 'Key diperbarui Maret 2026.',
                'created_at'        => now(), 'updated_at' => now(),
            ],
            [
                'kunci'             => 'AI_MODEL_AKTIF',
                'kategori'          => 'AI',
                'nama_pengaturan'   => 'Model AI yang Digunakan',
                'deskripsi'         => 'Nama model Gemini yang aktif digunakan untuk analisis kesehatan.',
                'nilai'             => 'gemini-1.5-pro-002',
                'nilai_integer'     => null, 'nilai_decimal' => null, 'nilai_boolean' => null, 'nilai_json' => null,
                'tipe_data'         => 'STRING',
                'aturan_validasi'   => 'required|string',
                'nilai_default'     => 'gemini-1.5-pro',
                'pilihan_nilai'     => 'gemini-1.5-flash,gemini-1.5-pro,gemini-1.5-pro-002',
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 11, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],
            [
                'kunci'             => 'AI_MAX_TOKENS',
                'kategori'          => 'AI',
                'nama_pengaturan'   => 'Maksimum Token per Request AI',
                'deskripsi'         => 'Batas maksimum token untuk setiap request ke Gemini AI.',
                'nilai'             => null,
                'nilai_integer'     => 2048,
                'nilai_decimal'     => null, 'nilai_boolean' => null, 'nilai_json' => null,
                'tipe_data'         => 'INTEGER',
                'aturan_validasi'   => 'required|integer|min:256|max:8192',
                'nilai_default'     => '1024', 'pilihan_nilai' => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 12, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],
            [
                'kunci'             => 'AI_AKTIF',
                'kategori'          => 'AI',
                'nama_pengaturan'   => 'Aktifkan Analisis AI',
                'deskripsi'         => 'Bila dinonaktifkan, sistem tidak akan memanggil Gemini AI setelah pemeriksaan.',
                'nilai'             => null,
                'nilai_integer'     => null, 'nilai_decimal' => null,
                'nilai_boolean'     => true,
                'nilai_json'        => null,
                'tipe_data'         => 'BOOLEAN',
                'aturan_validasi'   => 'required|boolean',
                'nilai_default'     => '1', 'pilihan_nilai' => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 13, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],

            // ── WAJAH ─────────────────────────────────────────────────────────
            [
                'kunci'             => 'WAJAH_THRESHOLD_PENGENALAN',
                'kategori'          => 'WAJAH',
                'nama_pengaturan'   => 'Threshold Skor Pengenalan Wajah',
                'deskripsi'         => 'Skor minimum (0–100) agar wajah dianggap berhasil dikenali. Nilai lebih tinggi = lebih ketat.',
                'nilai'             => null,
                'nilai_integer'     => null,
                'nilai_decimal'     => 80.00,
                'nilai_boolean'     => null, 'nilai_json' => null,
                'tipe_data'         => 'DECIMAL',
                'aturan_validasi'   => 'required|numeric|min:50|max:99',
                'nilai_default'     => '80', 'pilihan_nilai' => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 20, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],
            [
                'kunci'             => 'WAJAH_MODEL_ENCODING',
                'kategori'          => 'WAJAH',
                'nama_pengaturan'   => 'Model Encoding Wajah',
                'deskripsi'         => 'Model face recognition yang digunakan untuk ekstraksi embedding.',
                'nilai'             => 'dlib',
                'nilai_integer'     => null, 'nilai_decimal' => null, 'nilai_boolean' => null, 'nilai_json' => null,
                'tipe_data'         => 'STRING',
                'aturan_validasi'   => 'required|in:dlib,facenet,arcface',
                'nilai_default'     => 'dlib',
                'pilihan_nilai'     => 'dlib,facenet,arcface',
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 21, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],

            // ── NOTIFIKASI ────────────────────────────────────────────────────
            [
                'kunci'             => 'NOTIF_WA_AKTIF',
                'kategori'          => 'NOTIFIKASI',
                'nama_pengaturan'   => 'Aktifkan Notifikasi WhatsApp',
                'deskripsi'         => 'Kirim notifikasi hasil pemeriksaan ke WhatsApp pasien secara otomatis.',
                'nilai'             => null,
                'nilai_integer'     => null, 'nilai_decimal' => null,
                'nilai_boolean'     => true,
                'nilai_json'        => null,
                'tipe_data'         => 'BOOLEAN',
                'aturan_validasi'   => 'required|boolean',
                'nilai_default'     => '1', 'pilihan_nilai' => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => false,
                'urutan'            => 30, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],
            [
                'kunci'             => 'NOTIF_WA_API_KEY',
                'kategori'          => 'NOTIFIKASI',
                'nama_pengaturan'   => 'API Key WhatsApp Gateway',
                'deskripsi'         => 'API Key untuk layanan WhatsApp gateway (Fonnte / WA-blas / dll).',
                'nilai'             => 'waba_key_********************',
                'nilai_integer'     => null, 'nilai_decimal' => null, 'nilai_boolean' => null, 'nilai_json' => null,
                'tipe_data'         => 'STRING',
                'aturan_validasi'   => 'nullable|string',
                'nilai_default'     => null, 'pilihan_nilai' => null,
                'aktif'             => true, 'dapat_diubah' => true, 'sensitif' => true,
                'urutan'            => 31, 'diubah_oleh' => 1, 'terakhir_diubah' => now(),
                'catatan_perubahan' => null,
                'created_at'        => now(), 'updated_at' => now(),
            ],
        ];

        DB::table('pengaturan_sistem')->truncate();
        DB::table('pengaturan_sistem')->insert($pengaturan);
        $this->command->info('     ✓ ' . count($pengaturan) . ' pengaturan sistem berhasil di-seed.');
    }
}