import type { PageParam } from '@/api'

/** 通知类型枚举 */
export type NotificationType = 'ticket' | 'review' | 'system' | 'resource' | 'permission' | 'member' | 'payment'

/** 通知实体 */
export interface Notification {
  /** 通知 ID */
  id?: number
  /** 接收用户 ID */
  userId?: number
  /** 通知类型 */
  type?: NotificationType
  /** 通知标题 */
  title?: string
  /** 通知内容摘要 */
  content?: string
  /** 是否已读：0 未读，1 已读 */
  isRead?: number
  /** 关联业务 ID（如工单ID、权限申请ID等） */
  refId?: number
  /** 关联业务类型（如 ticket、permission_request 等） */
  refType?: string
  /** 跳转链接 */
  linkUrl?: string
  /** 发送者 ID（系统通知为 0） */
  senderId?: number
  /** 发送者名称 */
  senderName?: string
  /** 发送者头像 */
  senderAvatar?: string
  /** 租户 ID */
  tenantId?: number
  /** 创建时间 */
  createTime?: string
  /** 更新时间（标记已读时间） */
  updateTime?: string
}

/** 通知查询参数 */
export interface NotificationParam extends PageParam {
  /** 通知类型筛选 */
  type?: NotificationType | ''
  /** 是否已读：0 未读，1 已读，不传查全部 */
  isRead?: number
}

/** 未读统计 */
export interface UnreadCountResult {
  /** 总未读数 */
  total?: number
  /** 各类型未读数 */
  ticket?: number
  review?: number
  system?: number
  resource?: number
  permission?: number
  member?: number
  payment?: number
}
