From af86ce3bbbe9af052e5045fdc56c673252e94dce Mon Sep 17 00:00:00 2001 From: Dumazeau Date: Fri, 19 Jul 2024 17:02:10 +0200 Subject: [PATCH] Add category management --- src/Domain/Email/AbstractEmail.php | 20 +++++++++++++++++++ src/Domain/Email/EmailCategoryInterface.php | 10 ++++++++++ .../Fetcher/AdministrationEmailsFetcher.php | 4 +++- src/Domain/Model/AdministrationEmailModel.php | 9 ++++++++- 4 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 src/Domain/Email/EmailCategoryInterface.php diff --git a/src/Domain/Email/AbstractEmail.php b/src/Domain/Email/AbstractEmail.php index d72d951..c6a8d13 100644 --- a/src/Domain/Email/AbstractEmail.php +++ b/src/Domain/Email/AbstractEmail.php @@ -25,6 +25,8 @@ abstract class AbstractEmail protected const BODY_TYPE_TRANSLATION = 'translation'; protected const BODY_TYPE_TWIG = 'twig'; + protected const CATEGORY = null; + protected const TRANSLATION_DOMAIN = 'emails'; protected const TEMPLATING_FOLDER = 'emails'; @@ -72,6 +74,24 @@ public function getName(): string ); } + public function getCategorySlug(): ?string + { + return static::CATEGORY; + } + + public function getCategoryName(): ?string + { + if (static::CATEGORY === null) { + return null; + } + + return $this->translator->trans( + \sprintf('category.%s', static::CATEGORY), + [], + static::TRANSLATION_DOMAIN + ); + } + public function canSeeEmailInAdministration(): bool { return true; diff --git a/src/Domain/Email/EmailCategoryInterface.php b/src/Domain/Email/EmailCategoryInterface.php new file mode 100644 index 0000000..7dd0690 --- /dev/null +++ b/src/Domain/Email/EmailCategoryInterface.php @@ -0,0 +1,10 @@ +getEmailSlug(), $email->getName(), ($this->emailTemplateFetcher)($email->getEmailSlug()), - $email::TEMPLATES + $email::TEMPLATES, + $email->getCategorySlug(), + $email->getCategoryName() ); continue; diff --git a/src/Domain/Model/AdministrationEmailModel.php b/src/Domain/Model/AdministrationEmailModel.php index ec1607a..c6adbe6 100644 --- a/src/Domain/Model/AdministrationEmailModel.php +++ b/src/Domain/Model/AdministrationEmailModel.php @@ -13,12 +13,17 @@ final class AdministrationEmailModel /** @var string[] */ public array $allowedValues; + public ?string $categorySlug = null; + public ?string $categoryName = null; + /** @param string[] $allowedValues */ public static function build( string $slug, string $name, string $value, - array $allowedValues + array $allowedValues, + ?string $categorySlug = null, + ?string $categoryName = null ): self { $model = new self(); @@ -26,6 +31,8 @@ public static function build( $model->name = $name; $model->value = $value; $model->allowedValues = $allowedValues; + $model->categorySlug = $categorySlug; + $model->categoryName = $categoryName; return $model; }