GameConfigGroup.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Module\Game\Enums;
  3. /**
  4. * 游戏配置分组枚举
  5. */
  6. enum GameConfigGroup: string
  7. {
  8. case USER_LOG = 'user_log'; // 用户日志
  9. case REWARD = 'reward'; // 奖励系统
  10. case CONDITION = 'condition'; // 条件系统
  11. case CONSUME = 'consume'; // 消耗系统
  12. case SYSTEM = 'system'; // 系统配置
  13. /**
  14. * 获取分组名称
  15. */
  16. public function getName(): string
  17. {
  18. return match($this) {
  19. self::USER_LOG => '用户日志',
  20. self::REWARD => '奖励系统',
  21. self::CONDITION => '条件系统',
  22. self::CONSUME => '消耗系统',
  23. self::SYSTEM => '系统配置',
  24. };
  25. }
  26. /**
  27. * 获取分组描述
  28. */
  29. public function getDescription(): string
  30. {
  31. return match($this) {
  32. self::USER_LOG => '用户日志收集和管理相关配置',
  33. self::REWARD => '奖励发放和管理相关配置',
  34. self::CONDITION => '条件检查和验证相关配置',
  35. self::CONSUME => '资源消耗和扣除相关配置',
  36. self::SYSTEM => '系统运行和维护相关配置',
  37. };
  38. }
  39. /**
  40. * 获取所有分组选项
  41. */
  42. public static function getOptions(): array
  43. {
  44. return [
  45. self::USER_LOG->value => self::USER_LOG->getName(),
  46. self::REWARD->value => self::REWARD->getName(),
  47. self::CONDITION->value => self::CONDITION->getName(),
  48. self::CONSUME->value => self::CONSUME->getName(),
  49. self::SYSTEM->value => self::SYSTEM->getName(),
  50. ];
  51. }
  52. /**
  53. * 获取分组图标
  54. */
  55. public function getIcon(): string
  56. {
  57. return match($this) {
  58. self::USER_LOG => '📝',
  59. self::REWARD => '🎁',
  60. self::CONDITION => '✅',
  61. self::CONSUME => '💰',
  62. self::SYSTEM => '⚙️',
  63. };
  64. }
  65. }