// ===== 계좌 상태 =====
export type AccountStatus = 'active' | 'inactive';

export const ACCOUNT_STATUS_LABELS: Record<AccountStatus, string> = {
  active: '사용',
  inactive: '정지',
};

export const ACCOUNT_STATUS_OPTIONS = [
  { value: 'active', label: '사용' },
  { value: 'inactive', label: '정지' },
];

export const ACCOUNT_STATUS_COLORS: Record<AccountStatus, string> = {
  active: 'bg-green-100 text-green-800',
  inactive: 'bg-gray-100 text-gray-500',
};

// ===== 은행 목록 =====
export const BANK_OPTIONS = [
  { value: 'shinhan', label: '신한은행' },
  { value: 'kb', label: 'KB국민은행' },
  { value: 'woori', label: '우리은행' },
  { value: 'hana', label: '하나은행' },
  { value: 'nh', label: 'NH농협은행' },
  { value: 'ibk', label: 'IBK기업은행' },
  { value: 'kakao', label: '카카오뱅크' },
  { value: 'toss', label: '토스뱅크' },
  { value: 'sc', label: 'SC제일은행' },
  { value: 'citi', label: '씨티은행' },
  { value: 'kdb', label: 'KDB산업은행' },
  { value: 'busan', label: '부산은행' },
  { value: 'daegu', label: '대구은행' },
  { value: 'gwangju', label: '광주은행' },
  { value: 'jeonbuk', label: '전북은행' },
  { value: 'jeju', label: '제주은행' },
  { value: 'kbank', label: '케이뱅크' },
  { value: 'suhyup', label: '수협은행' },
  { value: 'post', label: '우체국' },
  { value: 'saemaul', label: '새마을금고' },
  { value: 'shinhyup', label: '신협' },
];

export const BANK_LABELS: Record<string, string> = BANK_OPTIONS.reduce(
  (acc, opt) => ({ ...acc, [opt.value]: opt.label }),
  {}
);

// ===== 정렬 옵션 =====
export type SortOption = 'latest' | 'oldest' | 'bankAsc' | 'bankDesc';

export const SORT_OPTIONS: { value: SortOption; label: string }[] = [
  { value: 'latest', label: '최신순' },
  { value: 'oldest', label: '등록순' },
  { value: 'bankAsc', label: '은행명 오름차순' },
  { value: 'bankDesc', label: '은행명 내림차순' },
];

// ===== 계좌 인터페이스 =====
export interface Account {
  id: string;
  bankCode: string;             // 은행 코드
  accountNumber: string;        // 계좌번호
  accountName: string;          // 계좌명
  accountHolder: string;        // 예금주
  accountPassword?: string;     // 계좌 비밀번호 (빠른 조회 서비스)
  status: AccountStatus;        // 상태 (사용/정지)
  createdAt: string;
  updatedAt: string;
}

// ===== 계좌 폼 데이터 =====
export interface AccountFormData {
  bankCode: string;
  accountNumber: string;
  accountName: string;
  accountHolder: string;
  accountPassword: string;
  status: AccountStatus;
}
