import type { StakingConfig } from '@/api/staking'

const DAYS_PER_MONTH = 30

/** 天数转展示月数（30 天/月截断取整，不足 1 个月显示 1） */
export function daysToDisplayMonths(days: number): number {
  return Math.max(1, Math.floor(days / DAYS_PER_MONTH))
}

/** 锁定月数（lockDays 为天数） */
export function lockMonthsFromConfig(config: StakingConfig): number {
  return daysToDisplayMonths(config.lockDays ?? 0)
}

/** 释放月数（releasePeriod 为天数）；一次性释放返回 0 */
export function releaseMonthsFromConfig(config: StakingConfig): number {
  if (config.releaseType !== 1) {
    return 0
  }
  return daysToDisplayMonths(config.releasePeriod ?? 0)
}

/** 预计开始释放时间 = 当前时间 + lockDays */
export function estimatedUnlockDate(config: StakingConfig): Date {
  const d = new Date()
  d.setDate(d.getDate() + (config.lockDays ?? 0))
  return d
}

export function formatUnlockDate(d: Date): string {
  const pad = (n: number) => String(n).padStart(2, '0')
  return `${d.getFullYear()}/${pad(d.getMonth() + 1)}/${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`
}
