import { formatDateTime } from '@/utils/date'

export interface NoticeTypeMeta {
  label: string
  className: string
}

const TYPE_META: Record<0 | 1 | 2, NoticeTypeMeta> = {
  0: { label: '公告', className: 'type-normal' },
  1: { label: '重要', className: 'type-important' },
  2: { label: '活动', className: 'type-event' }
}

/** 公告类型展示信息 */
export function getNoticeTypeMeta(type: number): NoticeTypeMeta {
  const key = type === 1 || type === 2 ? type : 0
  return TYPE_META[key]
}

/** 去掉富文本标签，用于列表摘要 */
export function stripNoticeHtml(html?: string): string {
  if (!html) return ''
  const doc = new DOMParser().parseFromString(html, 'text/html')
  return (doc.body.textContent || '').replace(/\s+/g, ' ').trim()
}

/** 公告有效期展示文案 */
export function formatNoticeRange(startTime?: string, endTime?: string): string {
  const start = startTime ? formatDateTime(startTime, 'YYYY-MM-DD') : ''
  const end = endTime ? formatDateTime(endTime, 'YYYY-MM-DD') : ''
  if (!start && !end) return '长期有效'
  return `${start || '不限'} ~ ${end || '不限'}`
}
