// ===== 거래처원장 타입 정의 =====

// 거래처원장 리스트 아이템
export interface VendorLedgerItem {
  id: string;
  vendorName: string;        // 거래처명
  carryoverBalance: number;  // 이월잔액
  sales: number;             // 매출
  collection: number;        // 수금
  balance: number;           // 잔액
  paymentDate: string;       // 결제일
}

// 거래 유형
export type TransactionType =
  | 'carryover'      // 이월잔액
  | 'note'           // 어음 관련 (수취 어음, 어음 회수 등)
  | 'sales'          // 매출 입력
  | 'item'           // 품목명 (세부 항목)
  | 'subtotal'       // 누계
  | 'monthly_total'; // 월별 계

// 판매/수금 내역 항목
export interface TransactionEntry {
  id: string;
  date: string;              // 일자 (빈 값일 수 있음)
  description: string;       // 적요
  salesAmount: number;       // 판매
  collectionAmount: number;  // 수금
  balance: number;           // 잔액
  type: TransactionType;     // 항목 유형
  isHighlighted?: boolean;   // 살구색 하이라이트 (세금계산서 미발행)
  isParenthesis?: boolean;   // 수금 금액 괄호 표시 여부
  noteInfo?: string;         // 어음 정보 (만기일 등)
  itemCount?: number;        // 누계 건수
  hasAction?: boolean;       // 작업 버튼 표시 여부
}

// 거래처원장 상세 정보
export interface VendorLedgerDetail {
  id: string;
  vendorName: string;           // 회사명
  businessNumber: string;       // 사업자등록번호
  representativeName: string;   // 대표자
  phone: string;                // 전화번호
  mobile: string;               // 모바일
  fax: string;                  // 팩스
  email: string;                // 이메일
  address: string;              // 주소
  periodStart: string;          // 기간 시작
  periodEnd: string;            // 기간 종료
  transactions: TransactionEntry[];  // 판매/수금 내역
}

// 요약 통계
export interface VendorLedgerSummary {
  carryoverBalance: number;  // 전기 이월
  totalSales: number;        // 매출
  totalCollection: number;   // 수금
  balance: number;           // 잔액
}