<?php

namespace App\Http\Controllers;

use App\Models\Tenant;
use Illuminate\Http\Request;

class AseguradoraController extends Controller
{
    public function index(Request $request)
    {
        $query = Tenant::query();

        if ($request->search) {
            $query->where('nombre', 'like', "%{$request->search}%")
                ->orWhere('ruc', 'like', "%{$request->search}%");
        }

        $aseguradoras = $query->orderBy('nombre')->paginate(20);

        return inertia('Catalogos/Aseguradoras', [
            'title' => 'Aseguradoras',
            'aseguradoras' => $aseguradoras,
            'filtros' => $request->only(['search']),
        ]);
    }

    public function store(Request $request)
    {
        $request->validate([
            'ruc' => 'required|unique:tenants,ruc',
            'nombre' => 'required|string',
            'id_externo' => 'required|string',
        ]);

        Tenant::create([
            'ruc' => $request->ruc,
            'nombre' => $request->nombre,
            'id_externo' => $request->id_externo,
            'telefono' => $request->telefono,
            'email' => $request->email,
            'direccion' => $request->direccion,
            'ciudad' => $request->ciudad,
            'tipo' => $request->tipo ?? 'empresa',
            'corte_facturacion_dia' => $request->corte_facturacion_dia ?? 30,
            'cruce_facturacion_dia' => $request->cruce_facturacion_dia ?? 5,
        ]);

        return back()->with('message', 'Aseguradora creada');
    }

    public function update(Request $request, Tenant $aseguradora)
    {
        $request->validate([
            'ruc' => 'required|unique:tenants,ruc,'.$aseguradora->id,
            'nombre' => 'required|string',
        ]);

        $aseguradora->update($request->all());

        return back()->with('message', 'Aseguradora actualizada');
    }

    public function destroy(Tenant $aseguradora)
    {
        $aseguradora->delete();

        return back()->with('message', 'Aseguradora eliminada');
    }
}
