<?php

declare(strict_types=1);

namespace Modules\Api\Rest\V1\Core;

use CodeIgniter\Debug\Exceptions;
use Override;
use Throwable;

class RestApiExceptions extends Exceptions
{
    #[Override]
    protected function render(Throwable $exception, int $statusCode): void
    {
        header('Content-Type: application/json');
        $data = [
            'status'   => $statusCode,
            'error'    => $statusCode,
            'messages' => [
                'error' => 'Unexpected error',
            ],
        ];
        if (ENVIRONMENT === 'development') {
            $data['messages'] = array_merge($data['messages'], [
                'message' => $exception->getMessage(),
                'file'    => $exception->getFile(),
                'line'    => $exception->getLine(),
                'trace'   => $exception->getTrace(),
            ]);
        }

        echo json_encode($data);
    }
}