// ===== 증권종류 =====
export const INSTRUMENT_TYPE_OPTIONS = [
  { value: 'promissory', label: '약속어음' },
  { value: 'exchange', label: '환어음' },
  { value: 'cashierCheck', label: '자기앞수표 (가게수표)' },
  { value: 'currentCheck', label: '당좌수표' },
] as const;

// ===== 거래방향 =====
export const DIRECTION_OPTIONS = [
  { value: 'received', label: '수취 (받을어음)' },
  { value: 'issued', label: '발행 (지급어음)' },
] as const;

// ===== 전자/지류 =====
export const MEDIUM_OPTIONS = [
  { value: 'electronic', label: '전자' },
  { value: 'paper', label: '지류 (종이)' },
] as const;

// ===== 배서 여부 =====
export const ENDORSEMENT_OPTIONS = [
  { value: 'endorsable', label: '배서 가능' },
  { value: 'nonEndorsable', label: '배서 불가 (배서금지어음)' },
] as const;

// ===== 어음구분 =====
export const BILL_CATEGORY_OPTIONS = [
  { value: 'commercial', label: '상업어음 (매출채권)' },
  { value: 'other', label: '기타어음 (대여금/미수금)' },
] as const;

// ===== 받을어음 - 결제상태 (어음용) =====
export const RECEIVED_STATUS_OPTIONS = [
  { value: 'stored', label: '보관중' },
  { value: 'endorsed', label: '배서양도' },
  { value: 'discounted', label: '할인' },
  { value: 'collected', label: '추심' },
  { value: 'maturityAlert', label: '만기임박 (7일전)' },
  { value: 'maturityDeposit', label: '만기입금' },
  { value: 'paymentComplete', label: '결제완료' },
  { value: 'renewed', label: '개서 (만기연장)' },
  { value: 'recourse', label: '소구 (배서어음 상환)' },
  { value: 'buyback', label: '환매 (할인어음 부도)' },
  { value: 'dishonored', label: '부도' },
] as const;

// ===== 받을수표 - 결제상태 (수표용) =====
export const RECEIVED_CHECK_STATUS_OPTIONS = [
  { value: 'stored', label: '보관중' },
  { value: 'endorsed', label: '배서양도' },
  { value: 'collected', label: '추심' },
  { value: 'deposited', label: '추심입금' },
  { value: 'paymentComplete', label: '결제완료 (제시입금)' },
  { value: 'recourse', label: '소구 (수표법 제39조)' },
  { value: 'dishonored', label: '부도' },
] as const;

// ===== 지급어음 - 지급상태 =====
export const ISSUED_STATUS_OPTIONS = [
  { value: 'stored', label: '보관중' },
  { value: 'maturityAlert', label: '만기임박 (7일전)' },
  { value: 'maturityPayment', label: '만기결제' },
  { value: 'paid', label: '결제완료' },
  { value: 'renewed', label: '개서 (만기연장)' },
  { value: 'dishonored', label: '부도' },
] as const;

// ===== 지급수표 - 지급상태 =====
export const ISSUED_CHECK_STATUS_OPTIONS = [
  { value: 'stored', label: '미결제' },
  { value: 'paid', label: '결제완료 (제시출금)' },
  { value: 'dishonored', label: '부도' },
] as const;

// ===== 결제방법 =====
export const PAYMENT_METHOD_OPTIONS = [
  { value: 'autoTransfer', label: '만기자동이체' },
  { value: 'currentAccount', label: '당좌결제' },
  { value: 'other', label: '기타' },
] as const;

// ===== 부도사유 =====
export const DISHONOR_REASON_OPTIONS = [
  { value: 'insufficient_funds', label: '자금부족 (1호 부도)' },
  { value: 'trading_suspension', label: '거래정지처분 (2호 부도)' },
  { value: 'formal_defect', label: '형식불비' },
  { value: 'signature_mismatch', label: '서명/인감 불일치' },
  { value: 'expired', label: '제시기간 경과' },
  { value: 'other', label: '기타' },
] as const;

// ===== 이력 처리구분 =====
export const HISTORY_TYPE_OPTIONS = [
  { value: 'received', label: '수취' },
  { value: 'endorsement', label: '배서양도' },
  { value: 'splitEndorsement', label: '분할배서' },
  { value: 'collection', label: '추심의뢰' },
  { value: 'collectionDeposit', label: '추심입금' },
  { value: 'discount', label: '할인' },
  { value: 'maturityDeposit', label: '만기입금' },
  { value: 'dishonored', label: '부도' },
  { value: 'recourse', label: '소구' },
  { value: 'buyback', label: '환매' },
  { value: 'renewal', label: '개서' },
  { value: 'other', label: '기타' },
] as const;

// ===== 배서차수 (지류: 4차, 전자: 20차) =====
export const ENDORSEMENT_ORDER_PAPER = [
  { value: '1', label: '1차 (발행인 직접수취)' },
  { value: '2', label: '2차 (1개 업체 경유)' },
  { value: '3', label: '3차 (2개 업체 경유)' },
  { value: '4', label: '4차 (3개 업체 경유)' },
] as const;

export const ENDORSEMENT_ORDER_ELECTRONIC = Array.from({ length: 20 }, (_, i) => ({
  value: String(i + 1),
  label: i === 0 ? '1차 (발행인 직접수취)' : `${i + 1}차 (${i}개 업체 경유)`,
}));

// ===== 보관장소 =====
export const STORAGE_OPTIONS = [
  { value: 'safe', label: '금고' },
  { value: 'bank', label: '은행 보관' },
  { value: 'other', label: '기타' },
] as const;

// ===== 지급장소 (어음법 제75조) =====
export const PAYMENT_PLACE_OPTIONS = [
  { value: 'issuerBank', label: '발행은행 본점' },
  { value: 'issuerBankBranch', label: '발행은행 지점' },
  { value: 'payerAddress', label: '지급인 주소지' },
  { value: 'designatedBank', label: '지정 은행' },
  { value: 'other', label: '기타' },
] as const;

// ===== 수표 지급장소 (수표법 제3조: 은행만) =====
export const PAYMENT_PLACE_CHECK_OPTIONS = [
  { value: 'issuerBank', label: '발행은행 본점' },
  { value: 'issuerBankBranch', label: '발행은행 지점' },
  { value: 'designatedBank', label: '지정 은행' },
] as const;

// ===== 추심결과 =====
export const COLLECTION_RESULT_OPTIONS = [
  { value: 'success', label: '추심 성공 (입금완료)' },
  { value: 'partial', label: '일부 입금' },
  { value: 'failed', label: '추심 실패 (부도)' },
  { value: 'pending', label: '추심 진행중' },
] as const;

// ===== 소구사유 =====
export const RECOURSE_REASON_OPTIONS = [
  { value: 'endorsedDishonor', label: '배서양도 어음 부도' },
  { value: 'discountDishonor', label: '할인 어음 부도 (환매)' },
  { value: 'other', label: '기타' },
] as const;

// ===== 인수거절 사유 =====
export const ACCEPTANCE_REFUSAL_REASON_OPTIONS = [
  { value: 'financialDifficulty', label: '자금 사정 곤란' },
  { value: 'disputeOfClaim', label: '채권 분쟁' },
  { value: 'amountDispute', label: '금액 이의' },
  { value: 'other', label: '기타' },
] as const;

// ===== 개서 사유 =====
export const RENEWAL_REASON_OPTIONS = [
  { value: 'maturityExtension', label: '만기일 연장' },
  { value: 'amountChange', label: '금액 변경' },
  { value: 'conditionChange', label: '조건 변경' },
  { value: 'other', label: '기타' },
] as const;

// ===== 수표 관련 유효 상태 목록 (증권종류 전환 시 검증용) =====
export const VALID_CHECK_RECEIVED_STATUSES = ['stored', 'endorsed', 'collected', 'deposited', 'paymentComplete', 'recourse', 'dishonored'];
export const VALID_CHECK_ISSUED_STATUSES = ['stored', 'paid', 'dishonored'];
