Este documento descreve como criar e utilizar as Enums disponíveis no sistema, além de listar todas as Enums atualmente implementadas.
Para criar uma Enum no sistema, siga o padrão abaixo. Todas as Enums devem:
Declarar o tipo de dado, como int
ou string
. Importante utilizar o EnumTrait para ter funcionalidades adicionais ao tipo Enum.
Ao criar um Enum, é de suma importância usar o EnumTrait.
Exemplo de Enum
<?php
declare(strict_types=1);
namespace App\Enum;
use App\Enum\Trait\EnumTrait;
enum AuthorizedByTypeEnum: int
{
use EnumTrait;
case AGENT = 1;
case ORGANIZATION = 2;
}
Neste exemplo, o AuthorizedByEnum define dois tipos de autorização possíveis no sistema: AGENT e ORGANIZATION.
As Enums disponíveis no sistema são:
- AuthorizedByEnum
- EntityEnum
- InscriptionOpportunityStatusEnum
Enumera as entidades principais do sistema.
Constante | Valor | Descrição |
---|---|---|
AGENT |
1 |
Representa um agente. |
ORGANIZATION |
2 |
Representa uma organização. |
SPACE |
3 |
Representa um espaço. |
EVENT |
4 |
Representa um evento. |
INITIATIVE |
5 |
Representa uma iniciativa. |
OPPORTUNITY |
6 |
Representa uma oportunidade. |
Define os tipos de entidades autorizadas no sistema.
Constante | Valor | Descrição |
---|---|---|
AGENT |
1 |
Representa um agente autorizado. |
ORGANIZATION |
2 |
Representa uma organização autorizada. |
Enumera os possíveis estados de uma inscrição em uma oportunidade.
Constante | Valor | Descrição |
---|---|---|
ACTIVE |
1 |
Representa uma inscrição ativa. |
INACTIVE |
2 |
Representa uma inscrição inativa. |
SUSPENDED |
3 |
Representa uma inscrição suspensa. |
Evite usar valores literais (como 1
, 2
, etc.) diretamente no código. Sempre utilize as constantes da Enum para garantir clareza e manutenibilidade.
Exemplo:
// Forma errada
if ($type === 1) { /* lógica */ }
// Forma correta
if ($type === AuthorizedByTypeEnum::AGENT->value) { /* lógica */ }
Certifique-se de tratar casos em que o valor fornecido não corresponde a nenhum dos valores definidos na Enum.
Todas as Enums devem ser armazenadas no namespace App\Enum e seguir o mesmo padrão de nomenclatura.
Sempre que um novo valor for adicionado ou modificado, atualize este documento para refletir as mudanças.