diff --git a/hwe/sammo/Auction.php b/hwe/sammo/Auction.php new file mode 100644 index 00000000..78169f1e --- /dev/null +++ b/hwe/sammo/Auction.php @@ -0,0 +1,46 @@ +invalidateCacheValue(self::LAST_AUCTION_ID_KEY); + $auctionID = ($gameStor->getValue(self::LAST_AUCTION_ID_KEY) ?? 0) + 1; + + $gameStor->setValue(self::LAST_AUCTION_ID_KEY, $auctionID); + + return $auctionID; + } + + + static public function openAuction(AuctionInfo $info) + { + $db = DB::db(); + $auctionID = $info->id; + $auctionStor = KVStorage::getStorage($db, 'auction'); + $auctionStor->setValue("id_{$auctionID}", $info->toArray()); + } + + public function __construct(private readonly int $auctionID) + { + $db = DB::db(); + $auctionStor = KVStorage::getStorage($db, 'auction'); + $rawBettingInfo = $auctionStor->getValue("id_{$auctionID}"); + if ($rawBettingInfo === null) { + throw new \RuntimeException("해당 경매가 없습니다: {$auctionID}"); + } + $this->info = new AuctionInfo($rawBettingInfo); + } +} diff --git a/hwe/sammo/DTO/AuctionBidItem.php b/hwe/sammo/DTO/AuctionBidItem.php new file mode 100644 index 00000000..185cc37a --- /dev/null +++ b/hwe/sammo/DTO/AuctionBidItem.php @@ -0,0 +1,38 @@ +data); + return $result; + } +} \ No newline at end of file diff --git a/hwe/sammo/DTO/AuctionBidItemData.php b/hwe/sammo/DTO/AuctionBidItemData.php new file mode 100644 index 00000000..5d065ddb --- /dev/null +++ b/hwe/sammo/DTO/AuctionBidItemData.php @@ -0,0 +1,10 @@ +