EvaluationTargetEnum.php 771 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\Enums;
  3. use App\Traits\EnumHelper;
  4. enum EvaluationTargetEnum: string
  5. {
  6. use EnumHelper;
  7. case TODOS = 'todos';
  8. case ASSOCIADO = 'associado';
  9. case PARCEIRO = 'parceiro';
  10. /**
  11. * Tipos de usuário elegíveis a responder uma campanha com este alvo.
  12. *
  13. * @return array<int, UserTypeEnum>
  14. */
  15. public function userTypes(): array
  16. {
  17. return match ($this) {
  18. self::ASSOCIADO => [UserTypeEnum::ASSOCIADO],
  19. self::PARCEIRO => [UserTypeEnum::PARCEIRO],
  20. self::TODOS => [UserTypeEnum::ASSOCIADO, UserTypeEnum::PARCEIRO],
  21. };
  22. }
  23. public function accepts(UserTypeEnum $userType): bool
  24. {
  25. return in_array($userType, $this->userTypes(), true);
  26. }
  27. }