import type { ChargeMode, QuantityKey, ScreenshotKey } from '@/features/listings/api/listingOptions'

export type PublishForm = {
  server_region: string
  face_owner: string
  haf_coin_amount: number | ''
  rank_level: string
  secret_kd: string
  fire_level: number | ''
  daily_loss_m: number | ''
  accelerated_sale_ratio: number | ''
  season_insurance: string
  stamina_level: string
  load_level: string
  login_method: string
  online_start: string
  online_end: string
  ban_record: string
  common_regions: string[]
  deposit_amount: number | ''
  remark: string
}

export interface PublishDraft {
  form: PublishForm
  quantityValues: Record<QuantityKey, number>
  quantityModes: Record<QuantityKey, ChargeMode>
  screenshotFiles: Record<ScreenshotKey, string>
  selectedSkins: string[]
}

export interface DepositBreakdownItem {
  label: string
  amount: number
  count: number
}

export interface PublishPlatformPricing {
  buyerCoinBasePrice: number
  buyerTotalPrice: number
  buyerRatio: number
  platformMarkupAmount: number
  ruleType: 'fixed_markup' | 'ratio_subtract' | 'none' | string
}
