feat(mall): live flash-sale page and activity price snapshots

The flash-sale page loads active sessions and their items through the shared
client with live sale price, remaining activity stock, sell-through, and a
countdown, and adds the SKU to the existing cart so checkout resolves the
authoritative price. Payment and order detail tag and render the snapshotted
activity unit price.

The flash-sale fixtures leave the page; the fixed-data adapter still serves the
domain as the rollback path.
This commit is contained in:
2026-09-18 12:53:26 +00:00
parent 393e7f7209
commit 2125ae437f
10 changed files with 283 additions and 60 deletions
+1
View File
@@ -692,6 +692,7 @@ export function seedOrders(userId: string): MockOrderSeed {
unit_price_minor: sku.price_minor,
qty,
image: product.images[0] ?? null,
flash_sale_item_id: null,
};
});
const total = items.reduce((sum, it) => sum + it.unit_price_minor * it.qty, 0);