import type { DetailModalConfig } from '../types';

/**
 * 당월 예상 지출 모달 설정
 */
export function getMonthlyExpenseModalConfig(cardId: string): DetailModalConfig | null {
  const configs: Record<string, DetailModalConfig> = {
    me1: {
      title: '당월 매입 상세',
      summaryCards: [
        { label: '당월 매입', value: 3123000, unit: '원' },
        { label: '전월 대비', value: '-12.5%', isComparison: true, isPositive: false },
      ],
      barChart: {
        title: '월별 매입 추이',
        data: [
          { name: '1월', value: 45000000 },
          { name: '2월', value: 52000000 },
          { name: '3월', value: 48000000 },
          { name: '4월', value: 61000000 },
          { name: '5월', value: 55000000 },
          { name: '6월', value: 58000000 },
          { name: '7월', value: 50000000 },
        ],
        dataKey: 'value',
        xAxisKey: 'name',
        color: '#60A5FA',
      },
      pieChart: {
        title: '자재 유형별 구매 비율',
        data: [
          { name: '원자재', value: 55000000, percentage: 55, color: '#60A5FA' },
          { name: '부자재', value: 35000000, percentage: 35, color: '#34D399' },
          { name: '포장재', value: 10000000, percentage: 10, color: '#FBBF24' },
        ],
      },
      table: {
        title: '일별 매입 내역',
        columns: [
          { key: 'no', label: 'No.', align: 'center' },
          { key: 'date', label: '매입일', align: 'center', format: 'date' },
          { key: 'vendor', label: '거래처', align: 'left' },
          { key: 'amount', label: '매입금액', align: 'right', format: 'currency' },
          { key: 'type', label: '매입유형', align: 'center' },
        ],
        data: [
          { date: '2025-12-12', vendor: '회사명', amount: 11000000, type: '원재료매입' },
          { date: '2025-12-12', vendor: '회사명', amount: 11000000, type: '부재료매입' },
          { date: '2025-12-12', vendor: '회사명', amount: 11000000, type: '미설정' },
          { date: '2025-12-12', vendor: '회사명', amount: 11000000, type: '원재료매입' },
          { date: '2025-12-12', vendor: '회사명', amount: 11000000, type: '부재료매입' },
          { date: '2025-12-12', vendor: '회사명', amount: 11000000, type: '미설정' },
          { date: '2025-12-12', vendor: '회사명', amount: 11000000, type: '원재료매입' },
        ],
        filters: [
          {
            key: 'type',
            options: [
              { value: 'all', label: '전체' },
              { value: '원재료매입', label: '원재료매입' },
              { value: '부재료매입', label: '부재료매입' },
              { value: '미설정', label: '미설정' },
            ],
            defaultValue: 'all',
          },
          {
            key: 'sortOrder',
            options: [
              { value: 'latest', label: '최신순' },
              { value: 'oldest', label: '오래된순' },
            ],
            defaultValue: 'latest',
          },
        ],
        showTotal: true,
        totalLabel: '합계',
        totalValue: 111000000,
        totalColumnKey: 'amount',
      },
    },
    me2: {
      title: '당월 카드 상세',
      summaryCards: [
        { label: '당월 카드 사용', value: 6000000, unit: '원' },
        { label: '전월 대비', value: '-12.5%', isComparison: true, isPositive: false },
        { label: '이용건', value: '10건' },
      ],
      barChart: {
        title: '월별 카드 사용 추이',
        data: [
          { name: '1월', value: 4500000 },
          { name: '2월', value: 5200000 },
          { name: '3월', value: 4800000 },
          { name: '4월', value: 6100000 },
          { name: '5월', value: 5500000 },
          { name: '6월', value: 5800000 },
          { name: '7월', value: 6000000 },
        ],
        dataKey: 'value',
        xAxisKey: 'name',
        color: '#60A5FA',
      },
      pieChart: {
        title: '사용자별 카드 사용 비율',
        data: [
          { name: '홍길동', value: 55000000, percentage: 55, color: '#60A5FA' },
          { name: '김길동', value: 35000000, percentage: 35, color: '#34D399' },
          { name: '이길동', value: 10000000, percentage: 10, color: '#FBBF24' },
        ],
      },
      table: {
        title: '일별 카드 사용 내역',
        columns: [
          { key: 'no', label: 'No.', align: 'center' },
          { key: 'cardName', label: '카드명', align: 'left' },
          { key: 'user', label: '사용자', align: 'center' },
          { key: 'date', label: '사용일시', align: 'center', format: 'date' },
          { key: 'store', label: '가맹점명', align: 'left' },
          { key: 'amount', label: '사용금액', align: 'right', format: 'currency' },
          { key: 'usageType', label: '사용유형', align: 'center', highlightValue: '미설정' },
        ],
        data: [
          { cardName: '카드명', user: '홍길동', date: '2025-12-12 12:12', store: '가맹점명', amount: 1000000, usageType: '복리후생비' },
          { cardName: '카드명', user: '홍길동', date: '2025-12-11 14:30', store: '가맹점명', amount: 1000000, usageType: '접대비' },
          { cardName: '카드명', user: '홍길동', date: '2025-12-10 09:45', store: '가맹점명', amount: 1000000, usageType: '미설정' },
          { cardName: '카드명', user: '홍길동', date: '2025-12-09 18:20', store: '가맹점명', amount: 1000000, usageType: '미설정' },
          { cardName: '카드명', user: '홍길동', date: '2025-12-08 11:15', store: '가맹점명', amount: 1000000, usageType: '미설정' },
          { cardName: '카드명', user: '김길동', date: '2025-12-07 16:40', store: '가맹점명', amount: 5000000, usageType: '교통비' },
          { cardName: '카드명', user: '이길동', date: '2025-12-06 10:30', store: '가맹점명', amount: 1000000, usageType: '소모품비' },
          { cardName: '카드명', user: '홍길동', date: '2025-12-05 13:25', store: '스타벅스', amount: 45000, usageType: '복리후생비' },
          { cardName: '카드명', user: '김길동', date: '2025-12-04 19:50', store: '주유소', amount: 80000, usageType: '교통비' },
          { cardName: '카드명', user: '이길동', date: '2025-12-03 08:10', store: '편의점', amount: 15000, usageType: '미설정' },
          { cardName: '카드명', user: '홍길동', date: '2025-12-02 12:00', store: '식당', amount: 250000, usageType: '접대비' },
          { cardName: '카드명', user: '김길동', date: '2025-12-01 15:35', store: '문구점', amount: 35000, usageType: '소모품비' },
          { cardName: '카드명', user: '홍길동', date: '2025-11-30 17:20', store: '호텔', amount: 350000, usageType: '미설정' },
          { cardName: '카드명', user: '이길동', date: '2025-11-29 09:00', store: '택시', amount: 25000, usageType: '교통비' },
          { cardName: '카드명', user: '김길동', date: '2025-11-28 14:15', store: '커피숍', amount: 32000, usageType: '복리후생비' },
          { cardName: '카드명', user: '홍길동', date: '2025-11-27 11:45', store: '마트', amount: 180000, usageType: '소모품비' },
          { cardName: '카드명', user: '이길동', date: '2025-11-26 16:30', store: '서점', amount: 45000, usageType: '미설정' },
          { cardName: '카드명', user: '김길동', date: '2025-11-25 10:20', store: '식당', amount: 120000, usageType: '접대비' },
        ],
        filters: [
          {
            key: 'user',
            options: [
              { value: 'all', label: '전체' },
              { value: '홍길동', label: '홍길동' },
              { value: '김길동', label: '김길동' },
              { value: '이길동', label: '이길동' },
            ],
            defaultValue: 'all',
          },
          {
            key: 'sortOrder',
            options: [
              { value: 'latest', label: '최신순' },
              { value: 'oldest', label: '등록순' },
              { value: 'amountDesc', label: '금액 높은순' },
              { value: 'amountAsc', label: '금액 낮은순' },
            ],
            defaultValue: 'latest',
          },
        ],
        showTotal: true,
        totalLabel: '합계',
        totalValue: 11000000,
        totalColumnKey: 'amount',
      },
    },
    me3: {
      title: '당월 발행어음 상세',
      summaryCards: [
        { label: '당월 발행어음 사용', value: 3123000, unit: '원' },
        { label: '전월 대비', value: '-12.5%', isComparison: true, isPositive: false },
      ],
      barChart: {
        title: '월별 발행어음 추이',
        data: [
          { name: '1월', value: 2000000 },
          { name: '2월', value: 2500000 },
          { name: '3월', value: 2200000 },
          { name: '4월', value: 2800000 },
          { name: '5월', value: 2600000 },
          { name: '6월', value: 3000000 },
          { name: '7월', value: 3123000 },
        ],
        dataKey: 'value',
        xAxisKey: 'name',
        color: '#60A5FA',
      },
      horizontalBarChart: {
        title: '당월 거래처별 발행어음',
        data: [
          { name: '거래처1', value: 50000000 },
          { name: '거래처2', value: 35000000 },
          { name: '거래처3', value: 20000000 },
          { name: '거래처4', value: 6000000 },
        ],
        color: '#60A5FA',
      },
      table: {
        title: '일별 발행어음 내역',
        columns: [
          { key: 'no', label: 'No.', align: 'center' },
          { key: 'vendor', label: '거래처', align: 'left' },
          { key: 'issueDate', label: '발행일', align: 'center', format: 'date' },
          { key: 'dueDate', label: '만기일', align: 'center', format: 'date' },
          { key: 'amount', label: '금액', align: 'right', format: 'currency' },
          { key: 'status', label: '상태', align: 'center' },
        ],
        data: [
          { vendor: '회사명', issueDate: '2025-12-12', dueDate: '2025-12-12', amount: 1000000, status: '보관중' },
          { vendor: '회사명', issueDate: '2025-12-12', dueDate: '2025-12-12', amount: 1000000, status: '만기임박' },
          { vendor: '회사명', issueDate: '2025-12-12', dueDate: '2025-12-12', amount: 1000000, status: '보관중' },
          { vendor: '회사명', issueDate: '2025-12-12', dueDate: '2025-12-12', amount: 1000000, status: '만기임박' },
          { vendor: '회사명', issueDate: '2025-12-12', dueDate: '2025-12-12', amount: 1000000, status: '보관중' },
          { vendor: '회사명', issueDate: '2025-12-12', dueDate: '2025-12-12', amount: 1000000, status: '만기임박' },
          { vendor: '회사명', issueDate: '2025-12-12', dueDate: '2025-12-12', amount: 105000000, status: '보관중' },
        ],
        filters: [
          {
            key: 'vendor',
            options: [
              { value: 'all', label: '전체' },
              { value: '회사명', label: '회사명' },
            ],
            defaultValue: 'all',
          },
          {
            key: 'status',
            options: [
              { value: 'all', label: '전체' },
              { value: '보관중', label: '보관중' },
              { value: '만기임박', label: '만기임박' },
              { value: '만기경과', label: '만기경과' },
              { value: '결제완료', label: '결제완료' },
              { value: '부도', label: '부도' },
            ],
            defaultValue: 'all',
          },
          {
            key: 'sortOrder',
            options: [
              { value: 'latest', label: '최신순' },
              { value: 'oldest', label: '등록순' },
              { value: 'amountDesc', label: '금액 높은순' },
              { value: 'amountAsc', label: '금액 낮은순' },
            ],
            defaultValue: 'latest',
          },
        ],
        showTotal: true,
        totalLabel: '합계',
        totalValue: 111000000,
        totalColumnKey: 'amount',
      },
    },
    me4: {
      title: '당월 지출 예상 상세',
      summaryCards: [
        { label: '당월 지출 예상', value: 6000000, unit: '원' },
        { label: '전월 대비', value: '-12.5%', isComparison: true, isPositive: false },
        { label: '총 계좌 잔액', value: 10000000, unit: '원' },
      ],
      table: {
        title: '당월 지출 승인 내역서',
        columns: [
          { key: 'paymentDate', label: '예상 지급일', align: 'center' },
          { key: 'item', label: '항목', align: 'left' },
          { key: 'amount', label: '지출금액', align: 'right', format: 'currency', highlightColor: 'red' },
          { key: 'vendor', label: '거래처', align: 'center' },
          { key: 'account', label: '계좌', align: 'center' },
        ],
        data: [
          { paymentDate: '2025-12-12', item: '품의 사유...', amount: 1000000, vendor: '회사명', account: '국민은행 1234' },
          { paymentDate: '2025-12-12', item: '품의 사유...', amount: 1000000, vendor: '회사명', account: '국민은행 1234' },
          { paymentDate: '2025-12-12', item: '(발행 어음) 123123123', amount: 1000000, vendor: '회사명', account: '국민은행 1234' },
          { paymentDate: '2025-12-12', item: '품의 사유...', amount: 1000000, vendor: '회사명', account: '국민은행 1234' },
          { paymentDate: '2025-12-12', item: '거래처명 12월분', amount: 1000000, vendor: '회사명', account: '국민은행 1234' },
          { paymentDate: '2025-12-12', item: '품의 사유...', amount: 1000000, vendor: '회사명', account: '국민은행 1234' },
          { paymentDate: '2025-12-12', item: '품의 사유...', amount: 1000000, vendor: '회사명', account: '국민은행 1234' },
          { paymentDate: '2025-12-12', item: '품의 사유...', amount: 1000000, vendor: '회사명', account: '국민은행 1234' },
          { paymentDate: '2025-12-12', item: '적요 내용', amount: 1000000, vendor: '회사명', account: '국민은행 1234' },
        ],
        filters: [
          {
            key: 'vendor',
            options: [
              { value: 'all', label: '전체' },
              { value: '회사명', label: '회사명' },
            ],
            defaultValue: 'all',
          },
          {
            key: 'sortOrder',
            options: [
              { value: 'latest', label: '최신순' },
              { value: 'oldest', label: '등록순' },
            ],
            defaultValue: 'latest',
          },
        ],
        showTotal: true,
        totalLabel: '2025/12 계',
        totalValue: 6000000,
        totalColumnKey: 'amount',
        footerSummary: [
          { label: '지출 합계', value: 6000000 },
          { label: '계좌 잔액', value: 10000000 },
          { label: '최종 차액', value: 4000000 },
        ],
      },
    },
  };

  return configs[cardId] || null;
}