/**
 * 文件职责：发票管理页面本地状态类型定义。
 */
import type {
  FinanceInvoiceStatusFilter,
  FinanceInvoiceTypeFilter,
} from '#/api/finance';

/** 页面分段键。 */
export type FinanceInvoiceTabKey = 'records' | 'settings';

/** 发票记录筛选状态。 */
export interface FinanceInvoiceFilterState {
  endDate: string;
  invoiceType: FinanceInvoiceTypeFilter;
  keyword: string;
  startDate: string;
  status: FinanceInvoiceStatusFilter;
}

/** 发票记录分页状态。 */
export interface FinanceInvoicePaginationState {
  page: number;
  pageSize: number;
  totalCount: number;
}

/** 发票设置表单状态。 */
export interface FinanceInvoiceSettingFormState {
  autoIssueMaxAmount: number;
  bankAccount: string;
  bankName: string;
  companyName: string;
  enableAutoIssue: boolean;
  enableElectronicNormalInvoice: boolean;
  enableElectronicSpecialInvoice: boolean;
  registeredAddress: string;
  registeredPhone: string;
  taxpayerNumber: string;
}

/** 发票开票抽屉表单状态。 */
export interface FinanceInvoiceIssueFormState {
  contactEmail: string;
  issueRemark: string;
}

/** 发票作废弹窗表单状态。 */
export interface FinanceInvoiceVoidFormState {
  voidReason: string;
}

/** 通用选项项。 */
export interface OptionItem {
  label: string;
  value: string;
}
