import { defineEventHandler, getHeader, getRequestURL, getRouterParam, proxyRequest } from 'h3'
import { useRuntimeConfig } from '#imports'

function joinURL(base: string, path: string) {
  if (!path) return base
  return base.replace(/\/+$/, '') + '/' + path.replace(/^\/+/, '')
}

/**
 * 公开 CMS 接口代理
 * 将 /api/cms/* 代理到 mp-api，无需登录（不要求 Authorization）
 */
export default defineEventHandler((event) => {
  const config = useRuntimeConfig()
  const mpApiBase = config.public.mpApiBase || 'https://mp-api.websoft.top'
  const path = getRouterParam(event, 'path') || ''
  const search = getRequestURL(event).search
  const target = joinURL(mpApiBase + '/api/cms', path) + search

  const tenantId = getHeader(event, 'tenantid') || config.public.tenantId

  return proxyRequest(event, target, {
    headers: {
      TenantId: String(tenantId)
    }
  })
})
