릴리스: v1.4.19 템플릿 아이템 삭제 영향 경고 및 보존 정책 정리

This commit is contained in:
2026-04-02 20:15:17 +09:00
parent 2923237813
commit d089ba99e9
7 changed files with 73 additions and 30 deletions

View File

@@ -18,6 +18,7 @@ const {
createGameItem,
updateGameItemLabel,
updateGameItemDisplayOrder,
countTierListsUsingGameItem,
updateCustomItemLabel,
updateImageAssetLabel,
deleteGameItem,
@@ -239,6 +240,15 @@ router.delete(['/games/:gameId/items/:itemId', '/templates/:templateId/items/:it
res.json({ ok: true })
})
router.get(['/games/:gameId/items/:itemId/usage', '/templates/:templateId/items/:itemId/usage'], requireAdmin, async (req, res) => {
const game = await findGameById(getTemplateIdParam(req))
if (!game) return res.status(404).json({ error: 'not_found' })
const item = await findGameItemById(req.params.itemId)
if (!item || item.gameId !== game.id) return res.status(404).json({ error: 'not_found' })
const usage = await countTierListsUsingGameItem(req.params.itemId)
res.json({ usage })
})
router.patch(['/games/:gameId/items/:itemId', '/templates/:templateId/items/:itemId'], requireAdmin, async (req, res) => {
const schema = z.object({ label: z.string().trim().min(1).max(60) })
const parsed = schema.safeParse(req.body)