// 상점 소모품 아이템 (백엔드 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];
