PetStatusChangedEvent.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace App\Module\Pet\Events;
  3. use App\Module\Pet\Dtos\DataPetSimpleDto;
  4. use App\Module\Pet\Enums\PetStatus;
  5. use Illuminate\Broadcasting\InteractsWithSockets;
  6. use Illuminate\Foundation\Events\Dispatchable;
  7. use Illuminate\Queue\SerializesModels;
  8. /**
  9. * 宠物状态变更事件
  10. *
  11. * 当宠物基本属性状态发生变化时触发此事件,允许其他系统响应宠物状态的变化。
  12. * 此事件可用于处理宠物喂养、训练、战斗等操作导致的基本属性状态变更。
  13. * 使用DataPetSimpleDto来表示宠物状态,其中旧状态/新状态使用不完整的DataPetSimpleDto,附加数据使用完整的DataPetSimpleDto。
  14. */
  15. class PetStatusChangedEvent
  16. {
  17. use Dispatchable, InteractsWithSockets, SerializesModels;
  18. /**
  19. * 用户ID
  20. *
  21. * @var int
  22. */
  23. public int $userId;
  24. /**
  25. * 宠物ID
  26. *
  27. * @var int
  28. */
  29. public int $petId;
  30. /**
  31. * 旧状态数据
  32. *
  33. * @var DataPetSimpleDto
  34. */
  35. public DataPetSimpleDto $oldStatusData;
  36. /**
  37. * 新状态数据
  38. *
  39. * @var DataPetSimpleDto
  40. */
  41. public DataPetSimpleDto $newStatusData;
  42. /**
  43. * 变更原因
  44. *
  45. * @var string
  46. */
  47. public string $reason;
  48. /**
  49. * 附加数据 - 完整的宠物数据
  50. *
  51. * @var DataPetSimpleDto
  52. */
  53. public DataPetSimpleDto $petData;
  54. /**
  55. * 创建一个新的事件实例
  56. *
  57. * @param int $userId 用户ID
  58. * @param int $petId 宠物ID
  59. * @param DataPetSimpleDto $oldStatusData 旧状态数据
  60. * @param DataPetSimpleDto $newStatusData 新状态数据
  61. * @param string $reason 变更原因
  62. * @param DataPetSimpleDto $petData 完整的宠物数据
  63. * @return void
  64. */
  65. public function __construct(
  66. int $userId,
  67. int $petId,
  68. DataPetSimpleDto $oldStatusData,
  69. DataPetSimpleDto $newStatusData,
  70. string $reason,
  71. DataPetSimpleDto $petData
  72. ) {
  73. $this->userId = $userId;
  74. $this->petId = $petId;
  75. $this->oldStatusData = $oldStatusData;
  76. $this->newStatusData = $newStatusData;
  77. $this->reason = $reason;
  78. $this->petData = $petData;
  79. }
  80. }