ActivityRewardDto.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace App\Module\Activity\Dtos;
  3. use UCore\Dto\BaseDto;
  4. /**
  5. * 活动奖励数据传输对象
  6. */
  7. class ActivityRewardDto extends BaseDto
  8. {
  9. /**
  10. * 奖励组ID
  11. *
  12. * @var int|null
  13. */
  14. public ?int $rewardGroupId;
  15. /**
  16. * 奖励组编码
  17. *
  18. * @var string|null
  19. */
  20. public ?string $rewardGroupCode;
  21. /**
  22. * 奖励组名称
  23. *
  24. * @var string|null
  25. */
  26. public ?string $rewardGroupName;
  27. /**
  28. * 奖励组描述
  29. *
  30. * @var string|null
  31. */
  32. public ?string $rewardGroupDescription;
  33. /**
  34. * 奖励项列表
  35. *
  36. * @var array
  37. */
  38. public array $rewardItems = [];
  39. /**
  40. * 创建一个新的活动奖励DTO实例
  41. *
  42. * @param int|null $rewardGroupId 奖励组ID
  43. * @param string|null $rewardGroupCode 奖励组编码
  44. * @param string|null $rewardGroupName 奖励组名称
  45. * @param string|null $rewardGroupDescription 奖励组描述
  46. * @return self
  47. */
  48. public static function create(
  49. ?int $rewardGroupId = null,
  50. ?string $rewardGroupCode = null,
  51. ?string $rewardGroupName = null,
  52. ?string $rewardGroupDescription = null
  53. ): self {
  54. $dto = new self();
  55. $dto->rewardGroupId = $rewardGroupId;
  56. $dto->rewardGroupCode = $rewardGroupCode;
  57. $dto->rewardGroupName = $rewardGroupName;
  58. $dto->rewardGroupDescription = $rewardGroupDescription;
  59. return $dto;
  60. }
  61. /**
  62. * 添加奖励项
  63. *
  64. * @param array $item 奖励项数据
  65. * @return self
  66. */
  67. public function addRewardItem(array $item): self
  68. {
  69. $this->rewardItems[] = $item;
  70. return $this;
  71. }
  72. /**
  73. * 设置奖励项列表
  74. *
  75. * @param array $items 奖励项列表
  76. * @return self
  77. */
  78. public function setRewardItems(array $items): self
  79. {
  80. $this->rewardItems = $items;
  81. return $this;
  82. }
  83. }