// 상점 소모품 아이템 (백엔드 ItemKind enum) // ⚠️ Web.Api Program.cs 에 JsonStringEnumConverter 미등록 → enum 은 전부 숫자로 직렬화됨. // ItemKind 숫자 코드·라벨의 단일 소스는 types/reward.ts (D3). 여기서는 소모품 전용 설명/사용가능 종류만 추가 정의. import { ItemKind, ITEM_KIND_LABEL } from '@/types/reward'; import type { ItemKindValue } from '@/types/reward'; export { ItemKind, ITEM_KIND_LABEL }; export type { ItemKindValue }; // 소모품 보관함 행 (GET /api/member/me/items — Member/Items/List/Response.Row) // kind 는 숫자(ItemKindValue). 이 화면은 소모품(5~11)만 다룬다. export interface MemberItemRow { id: number; productID: number; productName: string; thumbnail: string|null; kind: ItemKindValue; durationDays: number; acquiredAt: string; usedAt: string|null; } export interface MemberItemsResponse { total: number; list: MemberItemRow[]; } export interface UseItemResult { kind: ItemKindValue; message: string; } // 소모품 종류별 설명 (소모품 5~11 만) export const ITEM_KIND_DESC: Partial> = { [ItemKind.ChatBanLift]: '현재 적용 중인 채팅 제재를 즉시 해제합니다.', [ItemKind.PostReset]: '신고·댓글이 없는 예전 게시글을 일괄 삭제합니다.', [ItemKind.NotePass]: '쪽지 보내기에서 일일 한도를 넘겨 보내거나 무작위 회원에게 보낼 때 자동으로 사용됩니다.', [ItemKind.ExpBooster]: '사용 후 기간 동안 획득 경험치가 2배가 됩니다.', [ItemKind.ProfileImageChange]: '변경 주기 제한 없이 프로필 이미지를 즉시 변경할 때 자동으로 사용됩니다.', [ItemKind.TaglineChange]: '변경 주기 제한 없이 오늘의 한마디를 즉시 변경할 때 자동으로 사용됩니다.', [ItemKind.NicknameChange]: '변경 주기 제한 없이 닉네임을 즉시 변경할 때 자동으로 사용됩니다.' }; // 보관함에서 직접 "사용하기" 가능한 종류 (나머지는 해당 기능 이용 시 자동 소모) export const DIRECT_USE_KINDS: ItemKindValue[] = [ItemKind.ChatBanLift, ItemKind.PostReset, ItemKind.ExpBooster];