// ===== 출금 유형 =====
export type WithdrawalType =
  | 'unset'           // 미설정
  | 'purchasePayment' // 매입대금
  | 'advance'         // 선급금
  | 'suspense'        // 가지급금
  | 'rent'            // 임대료
  | 'interestExpense' // 이자비용
  | 'depositPayment'  // 보증금 지급
  | 'loanRepayment'   // 차입금 상환
  | 'dividendPayment' // 배당금 지급
  | 'vatPayment'      // 부가세 납부
  | 'salary'          // 급여
  | 'insurance'       // 4대보험
  | 'tax'             // 세금
  | 'utilities'       // 공과금
  | 'expenses'        // 경비
  | 'other';          // 기타

export const WITHDRAWAL_TYPE_LABELS: Record<WithdrawalType, string> = {
  unset: '미설정',
  purchasePayment: '매입대금',
  advance: '선급금',
  suspense: '가지급금',
  rent: '임대료',
  interestExpense: '이자비용',
  depositPayment: '보증금 지급',
  loanRepayment: '차입금 상환',
  dividendPayment: '배당금 지급',
  vatPayment: '부가세 납부',
  salary: '급여',
  insurance: '4대보험',
  tax: '세금',
  utilities: '공과금',
  expenses: '경비',
  other: '기타',
};

export const WITHDRAWAL_TYPE_OPTIONS = [
  { value: 'unset', label: '미설정' },
  { value: 'purchasePayment', label: '매입대금' },
  { value: 'advance', label: '선급금' },
  { value: 'suspense', label: '가지급금' },
  { value: 'rent', label: '임대료' },
  { value: 'interestExpense', label: '이자비용' },
  { value: 'depositPayment', label: '보증금 지급' },
  { value: 'loanRepayment', label: '차입금 상환' },
  { value: 'dividendPayment', label: '배당금 지급' },
  { value: 'vatPayment', label: '부가세 납부' },
  { value: 'salary', label: '급여' },
  { value: 'insurance', label: '4대보험' },
  { value: 'tax', label: '세금' },
  { value: 'utilities', label: '공과금' },
  { value: 'expenses', label: '경비' },
  { value: 'other', label: '기타' },
];

// 출금유형 필터 옵션 (전체 포함)
export const WITHDRAWAL_TYPE_FILTER_OPTIONS = [
  { value: 'all', label: '전체' },
  { value: 'purchasePayment', label: '매입대금' },
  { value: 'advance', label: '선급금' },
  { value: 'suspense', label: '가지급금' },
  { value: 'rent', label: '임대료' },
  { value: 'interestExpense', label: '이자비용' },
  { value: 'depositPayment', label: '보증금 지급' },
  { value: 'loanRepayment', label: '차입금 상환' },
  { value: 'dividendPayment', label: '배당금 지급' },
  { value: 'vatPayment', label: '부가세 납부' },
  { value: 'salary', label: '급여' },
  { value: 'insurance', label: '4대보험' },
  { value: 'tax', label: '세금' },
  { value: 'utilities', label: '공과금' },
  { value: 'expenses', label: '경비' },
  { value: 'other', label: '기타' },
  { value: 'unset', label: '미설정' },
];

// 상세 페이지 출금 유형 옵션 (전체 제외)
export const WITHDRAWAL_TYPE_SELECTOR_OPTIONS = WITHDRAWAL_TYPE_OPTIONS;

// ===== 정렬 옵션 =====
export type SortOption = 'latest' | 'oldest' | 'amountHigh' | 'amountLow';

export const SORT_OPTIONS: { value: SortOption; label: string }[] = [
  { value: 'latest', label: '최신순' },
  { value: 'oldest', label: '등록순' },
  { value: 'amountHigh', label: '금액 높은순' },
  { value: 'amountLow', label: '금액 낮은순' },
];

// ===== 출금 레코드 =====
export interface WithdrawalRecord {
  id: string;
  withdrawalDate: string;       // 출금일
  withdrawalAmount: number;     // 출금액
  bankAccountId?: string;       // 출금계좌 ID
  accountName: string;          // 출금계좌명
  recipientName: string;        // 수취인명
  note: string;                 // 적요
  withdrawalType: WithdrawalType; // 출금유형
  vendorId: string;             // 거래처 ID
  vendorName: string;           // 거래처명
  createdAt: string;
  updatedAt: string;
}

// ===== 거래처 타입 =====
export interface Vendor {
  id: string;
  name: string;
  email?: string;
  phone?: string;
}