<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class ConfiguracionSeeder extends Seeder
{
    public function run(): void
    {
        $valores = [
            ['clave' => 'empresa_nombre',        'valor' => 'Segape SAC',      'tipo' => 'string',  'descripcion' => 'Razón social de la empresa'],
            ['clave' => 'empresa_ruc',            'valor' => '20000000000',     'tipo' => 'string',  'descripcion' => 'RUC de la empresa'],
            ['clave' => 'empresa_direccion',      'valor' => 'Arequipa, Perú',  'tipo' => 'string',  'descripcion' => 'Dirección fiscal'],
            ['clave' => 'empresa_logo',           'valor' => null,              'tipo' => 'string',  'descripcion' => 'Ruta al logo (storage/app/public)'],
            ['clave' => 'igv_porcentaje',         'valor' => '18',              'tipo' => 'integer', 'descripcion' => 'Porcentaje de IGV aplicable'],
            ['clave' => 'moneda',                 'valor' => 'PEN',             'tipo' => 'string',  'descripcion' => 'Moneda del sistema (ISO 4217)'],
            ['clave' => 'moneda_simbolo',         'valor' => 'S/.',             'tipo' => 'string',  'descripcion' => 'Símbolo de moneda'],
            ['clave' => 'fecha_inicio_sistema',   'valor' => now()->toDateString(), 'tipo' => 'string', 'descripcion' => 'Fecha de puesta en marcha'],
            ['clave' => 'max_intentos_login',     'valor' => '5',               'tipo' => 'integer', 'descripcion' => 'Máximo de intentos fallidos de login'],
            ['clave' => 'sesion_duracion_min',    'valor' => '120',             'tipo' => 'integer', 'descripcion' => 'Duración de sesión en minutos'],
            ['clave' => 'caja_requiere_apertura', 'valor' => 'true',            'tipo' => 'boolean', 'descripcion' => 'Si la caja requiere apertura explícita'],
            ['clave' => 'facturacion_activa',     'valor' => 'false',           'tipo' => 'boolean', 'descripcion' => 'Facturación electrónica SUNAT habilitada'],
            ['clave' => 'sunat_modo',             'valor' => 'beta',            'tipo' => 'string',  'descripcion' => 'Modo SUNAT: beta o produccion'],
            ['clave' => 'picking_alerta_stock',   'valor' => 'true',            'tipo' => 'boolean', 'descripcion' => 'Alertar cuando stock < necesario en picking'],
            ['clave' => 'precompra_automatica',   'valor' => 'true',            'tipo' => 'boolean', 'descripcion' => 'Generar pre-compra automática al bajar del mínimo'],
        ];

        foreach ($valores as $v) {
            DB::table('configuracion')->updateOrInsert(
                ['clave' => $v['clave']],
                array_merge($v, [
                    'created_at' => now(),
                    'updated_at' => now(),
                ])
            );
        }

        $this->command->info('✅ Configuración inicial cargada.');
    }
}