<?php

namespace App\Http\Controllers;

use App\Models\Empleado;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;

class EmpleadoController extends Controller
{
    // LISTAR
    public function list()
    {
        return Empleado::all();
    }

    // GUARDAR
    public function store(Request $request)
    {
        $data = $request->datos;

        $empleado = Empleado::create([
            'nombre' => $data['nombre'] ?? null,
            'dni' => $data['dni'] ?? null,
            'telefono' => $data['telefono'] ?? null,
            'fecha_nacimiento' => $data['fecha_nacimiento'] ?? null,
            'fecha_inicio' => $data['fecha_inicio'] ?? null,
            'fecha_cese' => $data['fecha_cese'] ?? null,
            'direccion' => $data['direccion'] ?? null,
            'banco' => $data['banco'] ?? null,
            'numero_cuenta' => $data['numero_cuenta'] ?? null,
            'cci' => $data['cci'] ?? null,
        ]);

        // CREAR USUARIO (opcional)
        if (! empty($data['username'])) {

            User::create([
                'username' => $data['username'],
                'password' => Hash::make($data['password']),
                'rol_id' => $data['rol_id'],
                'empleado_id' => $empleado->$empleado->id,
            ]);
        }

        return response()->json(['ok' => true]);
    }

    // OBTENER UNO (PARA EDITAR)
    public function get($id)
    {
        return Empleado::find($id);
    }

    // ACTUALIZAR
    public function update(Request $request, $id)
    {
        $data = $request->datos;

        Empleado::where('id_empleado', $id)->update([
            'nombre' => $data['nombre'] ?? null,
            'dni' => $data['dni'] ?? null,
            'telefono' => $data['telefono'] ?? null,
            'fecha_nacimiento' => $data['fecha_nacimiento'] ?? null,
            'fecha_inicio' => $data['fecha_inicio'] ?? null,
            'fecha_cese' => $data['fecha_cese'] ?? null,
            'direccion' => $data['direccion'] ?? null,
            'banco' => $data['banco'] ?? null,
            'numero_cuenta' => $data['numero_cuenta'] ?? null,
            'cci' => $data['cci'] ?? null,
        ]);

        return response()->json(['ok' => true]);
    }

    // ELIMINAR
    public function delete($id)
    {
        // opcional: eliminar usuario relacionado
        User::where('id_empleado', $id)->delete();

        Empleado::find($id)->delete();

        return response()->json(['ok' => true]);
    }
}
