import type { Message } from "../types"

/**
 * P1-7: 构建回复消息的 compose 页面 URL。
 *
 * 抽离自 MessageDetail 组件，便于单元测试与复用。
 * - 使用 URLSearchParams 安全编码参数（避免 receiverId 含特殊字符的潜在问题）
 * - "Re:" 前缀逻辑集中在此处，避免多次回复产生 "Re: Re: Re:" 链
 * - 当 canSend 为 false 时返回 undefined（UI 据此隐藏回复入口）
 *
 * @param message 被回复的消息
 * @param currentUserId 当前用户 ID（用于判断回复方向：回复对方）
 * @param canSend 当前用户是否有 MESSAGE_SEND 权限
 */
export function buildReplyHref(
  message: Message,
  currentUserId: string,
  canSend: boolean
): string | undefined {
  if (!canSend) return undefined

  const replyToId = message.receiverId === currentUserId ? message.senderId : message.receiverId
  const subject = message.subject?.startsWith("Re:")
    ? message.subject
    : `Re: ${message.subject ?? ""}`

  const params = new URLSearchParams({
    parentId: message.id,
    receiverId: replyToId,
    subject,
  })

  return `/messages/compose?${params.toString()}`
}
