<?php

declare(strict_types=1);

namespace ImovelZapAi\Automation\Domain\Exceptions;

use RuntimeException;

class AutomationException extends RuntimeException
{
    public static function notFound(string $entity = 'Automação'): self
    {
        return new self("{$entity} não encontrada.");
    }

    public static function invalidState(string $detail): self
    {
        return new self("Operação inválida na automação: {$detail}");
    }

    public static function templateNotFound(): self
    {
        return new self('Modelo de automação não encontrado.');
    }

    public static function invalidTrigger(string $key): self
    {
        return new self("Gatilho inválido: {$key}.");
    }

    public static function loopDetected(): self
    {
        return new self('Execução ignorada para evitar loop de automações.');
    }
}
