// 공통코드 (마스터-디테일) 타입 정의
//
// 새 구조 (2026-05-15):
//   code_info   — 그룹 마스터 (PK: code_info)
//   code_detail — 디테일 트리 (PK: code_detail_id, parent_detail_id NULL 이면 그룹 직속)
//
// 백엔드가 Map<String, Object> 를 반환하므로 FE 도 Record<string, any> 로 받는다.
// (CLAUDE.md: 별도 인터페이스 정의 금지 — Record<string, any> 일관 사용)

/** code_info 마스터 row */
export type CodeInfo = Record<string, any>;

/** code_detail 트리 노드 */
export type CodeDetail = Record<string, any>;

/** 표준 API 응답 */
export interface ApiResponse<T = any> {
  success: boolean;
  data?: T;
  message: string;
  error?: string;
  total?: number;
}

/** 그룹 목록 조회 파라미터 */
export interface GetCodeInfoListQuery {
  search?: string;
  is_active?: boolean;
  page?: number;
  size?: number;
}

/** 디테일 트리 조회 파라미터 */
export interface GetCodeDetailListQuery {
  code_info: string;
  search?: string;
  is_active?: boolean;
}

/** 중복 검사 응답 */
export interface DuplicateCheckResult {
  isDuplicate: boolean;
  message: string;
  field: string;
  value: string;
}
