<?php

declare(strict_types=1);

namespace ImovelZapAi\ClientPortal\Domain\Exceptions;

use RuntimeException;

class ClientPortalException extends RuntimeException
{
    public static function invalidState(string $detail): self
    {
        return new self("Operação inválida no portal: {$detail}");
    }

    public static function tokenInvalid(): self
    {
        return new self('Link inválido ou expirado.');
    }

    public static function tokenRevoked(): self
    {
        return new self('Este link foi revogado.');
    }

    public static function uploadRejected(string $detail): self
    {
        return new self("Upload recusado: {$detail}");
    }

    public static function notFound(): self
    {
        return new self('Portal não encontrado.');
    }
}
