前端核心逻辑是：
列表接口：GET /api/private-room/moments?character=elio&limit=20
解锁接口：POST /api/private-room/moments/${encodeURIComponent(momentId)}/unlock
价格看 unlockCost，单位是 currency: "credits"
是否解锁看 locked/unlocked
锁定时 images[].url = null
解锁成功后直接用返回的 images[].url 