| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // 상점 소모품 아이템 (백엔드 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<Record<ItemKindValue, string>> = {
- [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];
|