Files
amare/app/Domain/Marketing/PortfolioVertical.php
manoel freitas dfd9763029
All checks were successful
CI / static (push) Successful in 2m40s
CI / unit (push) Successful in 3m41s
CI / feature (push) Successful in 2m56s
CI / container (push) Successful in 17s
CI / browser (push) Successful in 3m20s
feat: jornada pública Casamentos × Corporate (MAN-126) (#5)
Co-authored-by: manoel freitas <manoel.josefneto@gmail.com>
Co-committed-by: manoel freitas <manoel.josefneto@gmail.com>
2026-08-13 18:48:58 +00:00

46 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Domain\Marketing;
/**
* Public portfolio verticals used to separate Casamentos and Corporate proof.
*
* Matching is intentionally tolerant of free-text `event_type` values already
* stored in the CMS (e.g. "Casamento", "Mini wedding", "Corporativo").
*/
enum PortfolioVertical: string
{
case Casamentos = 'casamentos';
case Corporate = 'corporate';
public function label(): string
{
return match ($this) {
self::Casamentos => 'Casamentos',
self::Corporate => 'Corporate',
};
}
/**
* @return list<string>
*/
public function eventTypePatterns(): array
{
return match ($this) {
self::Casamentos => ['%casamento%', '%wedding%', '%social%'],
self::Corporate => ['%corporat%', '%empresa%', '%business%'],
};
}
public static function tryFromQuery(?string $value): ?self
{
if ($value === null || $value === '') {
return null;
}
return self::tryFrom($value);
}
}