import type { DetailModalConfig } from '../types';
import type {
  CardDashboardDetailApiResponse,
  LoanDashboardApiResponse,
  TaxSimulationApiResponse,
} from '@/lib/api/dashboard/types';
import {
  transformCm1ModalConfig,
  transformCm2ModalConfig,
  transformCm3ModalConfig,
  transformCm4ModalConfig,
} from './cardManagementConfigTransformers';

/**
 * 카드/가지급금 관리 모달 설정
 * cm1: 카드 사용 상세
 * cm2: 가지급금 상세
 * cm3: 법인세 예상 가중 상세
 * cm4: 대표자 종합소득세 예상 가중 상세
 */

// ============================================
// API 데이터 기반 모달 설정 생성
// ============================================

export interface CardManagementModalData {
  cm1Data?: CardDashboardDetailApiResponse | null;
  cm2Data?: LoanDashboardApiResponse | null;
  cm3Data?: TaxSimulationApiResponse | null;
  cm4Data?: TaxSimulationApiResponse | null;
}

/**
 * API 데이터를 사용하여 모달 설정을 동적으로 생성
 * 데이터가 없는 경우 null 반환 (mock fallback 제거)
 */
export function getCardManagementModalConfigWithData(
  cardId: string,
  data: CardManagementModalData
): DetailModalConfig | null {
  switch (cardId) {
    case 'cm1':
      return data.cm1Data ? transformCm1ModalConfig(data.cm1Data) : null;

    case 'cm2':
      return data.cm2Data ? transformCm2ModalConfig(data.cm2Data) : null;

    case 'cm3':
      return data.cm3Data ? transformCm3ModalConfig(data.cm3Data) : null;

    case 'cm4':
      return data.cm4Data ? transformCm4ModalConfig(data.cm4Data) : null;

    default:
      return null;
  }
}

/**
 * Fallback 모달 설정 (mock 제거 완료 — null 반환)
 * API 데이터가 없을 때 모달을 열지 않음
 */
export function getCardManagementModalConfig(_cardId: string): DetailModalConfig | null {
  return null;
}
