\App\Module\GameItems\Casts\TransactionDetailsCast::class, 'quantity' => 'integer', 'transaction_type' => 'integer', ]; /** * 交易类型常量 */ const TYPE_ACQUIRE = 1; // 获取 const TYPE_CONSUME = 2; // 消耗 const TYPE_TRADE_IN = 3; // 交易获得 const TYPE_TRADE_OUT = 4; // 交易失去 const TYPE_EXPIRE = 5; // 过期失效 const TYPE_DELETE = 6; // 删除 const TYPE_CRAFT = 7; // 合成 const TYPE_DISMANTLE = 8; // 分解 /** * 获取关联的物品 * * @return BelongsTo */ public function item(): BelongsTo { return $this->belongsTo(Item::class, 'item_id'); } /** * 获取关联的物品实例(如果有) * * @return BelongsTo */ public function instance(): BelongsTo { return $this->belongsTo(ItemInstance::class, 'instance_id'); } /** * 获取交易类型名称 * * @return string */ public function getTransactionTypeName(): string { $types = [ self::TYPE_ACQUIRE => '获取', self::TYPE_CONSUME => '消耗', self::TYPE_TRADE_IN => '交易获得', self::TYPE_TRADE_OUT => '交易失去', self::TYPE_EXPIRE => '过期失效', self::TYPE_DELETE => '删除', self::TYPE_CRAFT => '合成', self::TYPE_DISMANTLE => '分解', ]; return $types[$this->transaction_type] ?? '未知'; } }