<?php

namespace App\Services\Notification\Exceptions;

use App\Exceptions\Throwable;
use Exception;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;

class OperatorOfflineException extends Exception
{
    public $message;

    public function __construct(string $message = "", int $code = 500, ?Throwable $previous = null)
    {
        $this->message = $message;

        parent::__construct($message, $code, $previous);
    }

    /**
     * Report the exception.
     */
    public function report(): void
    {
        Log::channel('notification_service')
            ->error(OperatorOfflineException::class, [__('messages.the_operator_is_offline')]
        );
    }

    /**
     * Render the exception into an HTTP response.
     */
    public function render(): JsonResponse
    {
        return response()->json([
            'message' => $this->message
        ], $this->code);
    }
}
