export interface AdminAffiliateDashConfig {
  enabled: boolean
  baseUrl: string
  appKey: string
  appSecret: string
  callbackSecret: string
  timeoutMs: number
  notifyUrl: string
  timestampToleranceSeconds: number
  preferredMatchEnabled: boolean
  skuMapping: Record<string, string>
}

export interface AdminAffiliateDashEffectiveConfig {
  enabled: boolean
  baseUrl: string
  timeoutMs: number
  notifyUrl: string
  timestampToleranceSeconds: number
  preferredMatchEnabled: boolean
  hasAppKey: boolean
  hasAppSecret: boolean
  hasCallbackSecret: boolean
  skuMappingCount: number
}

export interface AdminAffiliateDashConfigResponse {
  source: AdminAffiliateDashConfig
  effective: AdminAffiliateDashEffectiveConfig
}

export interface AdminAffiliateDashMatchResult {
  productNo: string
  sku: string
  matched: boolean
}

export interface AdminAffiliateDashProductItem {
  sku: string
  displayName: string
  priceAmount: number
  costAmount: number
  currency: string
  stock: number
  status: string
  category: string
  code: string
  productId: number
}

export interface AdminAffiliateDashProductListResult {
  list: AdminAffiliateDashProductItem[]
  total: number
  page: number
  size: number
}

export interface AdminAffiliateDashWallet {
  availableBalance: number
  frozenBalance: number
  currency: string
}
