| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace App\Module\Pet\Events;
- use App\Module\Pet\Dtos\DataPetSimpleDto;
- use App\Module\Pet\Enums\PetStatus;
- use Illuminate\Broadcasting\InteractsWithSockets;
- use Illuminate\Foundation\Events\Dispatchable;
- use Illuminate\Queue\SerializesModels;
- /**
- * 宠物状态变更事件
- *
- * 当宠物基本属性状态发生变化时触发此事件,允许其他系统响应宠物状态的变化。
- * 此事件可用于处理宠物喂养、训练、战斗等操作导致的基本属性状态变更。
- * 使用DataPetSimpleDto来表示宠物状态,其中旧状态/新状态使用不完整的DataPetSimpleDto,附加数据使用完整的DataPetSimpleDto。
- */
- class PetStatusChangedEvent
- {
- use Dispatchable, InteractsWithSockets, SerializesModels;
- /**
- * 用户ID
- *
- * @var int
- */
- public int $userId;
- /**
- * 宠物ID
- *
- * @var int
- */
- public int $petId;
- /**
- * 旧状态数据
- *
- * @var DataPetSimpleDto
- */
- public DataPetSimpleDto $oldStatusData;
- /**
- * 新状态数据
- *
- * @var DataPetSimpleDto
- */
- public DataPetSimpleDto $newStatusData;
- /**
- * 变更原因
- *
- * @var string
- */
- public string $reason;
- /**
- * 附加数据 - 完整的宠物数据
- *
- * @var DataPetSimpleDto
- */
- public DataPetSimpleDto $petData;
- /**
- * 创建一个新的事件实例
- *
- * @param int $userId 用户ID
- * @param int $petId 宠物ID
- * @param DataPetSimpleDto $oldStatusData 旧状态数据
- * @param DataPetSimpleDto $newStatusData 新状态数据
- * @param string $reason 变更原因
- * @param DataPetSimpleDto $petData 完整的宠物数据
- * @return void
- */
- public function __construct(
- int $userId,
- int $petId,
- DataPetSimpleDto $oldStatusData,
- DataPetSimpleDto $newStatusData,
- string $reason,
- DataPetSimpleDto $petData
- ) {
- $this->userId = $userId;
- $this->petId = $petId;
- $this->oldStatusData = $oldStatusData;
- $this->newStatusData = $newStatusData;
- $this->reason = $reason;
- $this->petData = $petData;
- }
- }
|