<?php

namespace Database\Seeders;

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

class ConfiguracionSeeder extends Seeder
{
    public function run(): void
    {
        $items = [
            // Identidad
            ['empresa', 'apariencia', 'texto', 'Nombre de la empresa', 'MEDSURSA', 'Nombre que se muestra en el sistema y reportes'],
            ['nombre_sistema', 'apariencia', 'texto', 'Nombre del sistema', 'Sistema de Control de Mantenimiento Preventivo y Correctivo', null],
            ['ruc', 'apariencia', 'texto', 'RUC / Identificacion fiscal', '', null],
            ['direccion', 'apariencia', 'texto', 'Direccion de la empresa', '', null],
            ['telefono', 'apariencia', 'texto', 'Telefono de contacto', '', null],
            ['email_contacto', 'apariencia', 'texto', 'Correo de contacto', '', null],
            // Imagenes
            ['logo_largo', 'apariencia', 'archivo', 'Logo largo (informes)', 'img/logo_largo.png', null],
            ['logo_cuadrado', 'apariencia', 'archivo', 'Logo cuadrado (dashboard)', 'img/logo_cuadrado.png', null],
            ['fondo_login', 'apariencia', 'archivo', 'Fondo del login', 'img/fondo.jpg', null],
            ['favicon', 'apariencia', 'archivo', 'Favicon', 'img/favicon.svg', null],
            // Tema
            ['tema', 'apariencia', 'texto', 'Tema de la aplicacion', 'claro', 'claro u oscuro'],
            ['color_primario', 'apariencia', 'color', 'Color primario', '#1565C0', null],
            ['color_secundario', 'apariencia', 'color', 'Color secundario', '#0D47A1', null],
            ['color_acento', 'apariencia', 'color', 'Color de acento', '#FFC107', null],
            ['animaciones', 'apariencia', 'booleano', 'Habilitar animaciones', '1', null],
            // Operacion
            ['horas_pm_quincenal', 'operacion', 'numero', 'Horas PM 01 (Quincenal)', '360', null],
            ['horas_pm_mensual', 'operacion', 'numero', 'Horas PM 02 (Mensual)', '720', null],
            ['horas_pm_semestral', 'operacion', 'numero', 'Horas PM 03 (Semestral)', '4320', null],
            ['horas_pm_anual', 'operacion', 'numero', 'Horas PM 04 (Anual)', '8640', null],
            ['dias_alerta_vencimiento', 'operacion', 'numero', 'Dias previos para alerta de OT', '7', null],
            ['prefijo_orden_preventiva', 'operacion', 'texto', 'Prefijo de OT preventiva', 'OTP', null],
            ['prefijo_orden_correctiva', 'operacion', 'texto', 'Prefijo de OT correctiva', 'OTC', null],
            ['prefijo_plan', 'operacion', 'texto', 'Prefijo de plan', 'PLAN', null],
            ['max_tamano_foto_kb', 'operacion', 'numero', 'Tamano maximo de foto (KB)', '1024', null],
            ['ancho_foto_max', 'operacion', 'numero', 'Ancho maximo de foto (px)', '1600', null],
            ['zona_horaria', 'operacion', 'texto', 'Zona horaria', 'America/Lima', null],
            ['moneda_simbolo', 'operacion', 'texto', 'Simbolo de moneda', 'S/', null],
            ['moneda_codigo', 'operacion', 'texto', 'Codigo de moneda', 'PEN', null],
            // API
            ['api_habilitada', 'api', 'booleano', 'API habilitada', '1', null],
        ];

        foreach ($items as [$clave, $grupo, $tipo, $etiqueta, $valor, $descripcion]) {
            Configuracion::updateOrCreate(
                ['clave' => $clave],
                compact('grupo', 'tipo', 'etiqueta', 'valor', 'descripcion'),
            );
        }
    }
}
