ConfigRepository.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace App\Repositories;
  3. use App\Models\Config;
  4. use App\Models\Enums\ConfigGroup;
  5. use App\Repositories\Enums\EmailConfigFieldEnum;
  6. class ConfigRepository
  7. {
  8. public static function openEmailNotification(): bool
  9. {
  10. return self::getConfigItem(ConfigGroup::EMAIL->value, EmailConfigFieldEnum::OPEN_EMAIL_NOTIFICATION->value) == "on";
  11. }
  12. protected static function getConfigItem(string $group, string $key)
  13. {
  14. $config = Config::query()->where('group', $group)->where("key", $key)->first();
  15. return $config?->value;
  16. }
  17. public static function emailDynamicSetting()
  18. {
  19. $configs = Config::query()->where('group', ConfigGroup::EMAIL->value)->get();
  20. $fieldRelations = EmailConfigFieldEnum::fieldRelations();
  21. foreach ($configs as $config) {
  22. if(! isset($fieldRelations[$config->key]) || !$config->value) {
  23. continue;
  24. }
  25. \Illuminate\Support\Facades\Config::set($fieldRelations[$config->key], $config->value);
  26. }
  27. }
  28. }