/**
 * 身份注入中间件
 * 从请求头读取登录态信息，挂到 c.set('identity')
 *   X-User-Phone  → identity.phone
 *   X-User-Email  → identity.email
 *   X-User-Name   → identity.loginName  （登录态原始姓名，仅留痕）
 *
 * 注意：creator_name（用户自填）由前端表单显式提交在 body 里，不来自这里。
 */
export async function authIdentity(c, next) {
  const phone = c.req.header('X-User-Phone') || ''
  const email = c.req.header('X-User-Email') || ''
  const loginName = c.req.header('X-User-Name') || ''
  c.set('identity', {
    phone: phone.trim(),
    email: email.trim(),
    loginName: loginName.trim(),
  })
  await next()
}

/**
 * 强制要求登录态（任意一个：phone 或 email 必须有一个）
 * 写接口（POST/PUT/DELETE）会用到
 */
export function requireIdentity(c) {
  const id = c.get('identity') || {}
  if (!id.phone && !id.email) {
    return c.json({ error: 'unauthenticated', message: '缺少登录态：X-User-Phone 或 X-User-Email' }, 401)
  }
  return null
}
