<?php

namespace Database\Seeders;

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

class CajaCategoriaSeeder extends Seeder
{
    public function run(): void
    {
        $categorias = [
            // Ingresos
            ['nombre' => 'Venta en efectivo',      'tipo' => 'ingreso', 'slug' => 'venta_efectivo'],
            ['nombre' => 'Venta con tarjeta',       'tipo' => 'ingreso', 'slug' => 'venta_tarjeta'],
            ['nombre' => 'Venta por transferencia', 'tipo' => 'ingreso', 'slug' => 'venta_transferencia'],
            ['nombre' => 'Adelanto de cliente',     'tipo' => 'ingreso', 'slug' => 'adelanto_cliente'],
            ['nombre' => 'Devolución a caja',       'tipo' => 'ingreso', 'slug' => 'devolucion_caja'],
            ['nombre' => 'Otro ingreso',            'tipo' => 'ingreso', 'slug' => 'otro_ingreso'],
            // Egresos
            ['nombre' => 'Pago a proveedor',        'tipo' => 'egreso',  'slug' => 'pago_proveedor'],
            ['nombre' => 'Pago de servicio',        'tipo' => 'egreso',  'slug' => 'pago_servicio'],
            ['nombre' => 'Gasto operativo',         'tipo' => 'egreso',  'slug' => 'gasto_operativo'],
            ['nombre' => 'Retiro de caja',          'tipo' => 'egreso',  'slug' => 'retiro_caja'],
            ['nombre' => 'Depósito a banco',        'tipo' => 'egreso',  'slug' => 'deposito_banco'],
            ['nombre' => 'Devolución a cliente',    'tipo' => 'egreso',  'slug' => 'devolucion_cliente'],
            ['nombre' => 'Otro egreso',             'tipo' => 'egreso',  'slug' => 'otro_egreso'],
        ];

        foreach ($categorias as $c) {
            DB::table('caja_categorias')->updateOrInsert(
                ['slug' => $c['slug']],
                array_merge($c, ['activa' => true, 'created_at' => now(), 'updated_at' => now()])
            );
        }

        $this->command->info('✅ Categorías de caja creadas.');
    }
}