<?php

namespace App\Services;

use App\Models\Caso;
use App\Models\Notificacion;
use Illuminate\Support\Facades\Log;

class NotificationService
{
    /**
     * Registers a new notification in the system.
     */
    public static function notify(Caso $caso, string $tipo, string $mensaje, array $data = [], ?int $ajustadorId = null): Notificacion
    {
        try {
            return Notificacion::create([
                'caso_id' => $caso->id,
                'ajustador_id' => $ajustadorId,
                'tipo' => $tipo,
                'mensaje' => $mensaje,
                'data' => $data,
                'destinatario' => $ajustadorId ? 'Ajustador' : 'Sistema',
                'estado' => 'entregada',
                'canal' => 'todos',
                'leida' => false,
            ]);
        } catch (\Exception $e) {
            Log::error('Error creating notification: '.$e->getMessage());
            throw $e;
        }
    }
}
