/** 小程序直连 API（体验版/开发版统一；有正式 HTTPS 域名后再改 env） */
// const MP_API = 'http://192.168.1.6:8081/api/v1/mp'
const MP_API = 'https://img.ifarmcloud.com/deploymentApi/api/v1/mp'

/** H5 开发走 devServer 代理，避免浏览器跨域 */
const H5_DEV_PROXY_API = '/api/v1/mp'

function resolveBaseApi() {
	// H5 开发：请求 /api/... 由 vue.config.js / manifest h5.devServer 转发
	if (process.env.UNI_PLATFORM === 'h5' && process.env.NODE_ENV !== 'production') {
		return H5_DEV_PROXY_API
	}
	return process.env.VUE_APP_BASE_API || MP_API
}

/** API 基础路径 */
export const BASE_API = resolveBaseApi()

/**
 * 公开 API 前缀：/api/v1/mp → /api/v1/public
 * 公开草稿详情等不走 JWT，也不能拼在 mp 前缀下。
 */
export const PUBLIC_BASE_API = (() => {
	const base = (BASE_API || '').replace(/\/$/, '')
	if (!base) return ''
	if (/\/mp$/i.test(base)) return base.replace(/\/mp$/i, '/public')
	return `${base}/public`
})()

/**
 * 将后端返回的相对资源路径（如登记二维码）拼成可访问 URL。
 * BASE_API=https://host/deploymentApi/api/v1/mp
 * → 相对路径 /api/v1/public/... 拼成 https://host/deploymentApi/api/v1/public/...
 */
export function resolveApiAssetUrl(path) {
	if (!path) return ''
	const raw = String(path).trim()
	if (!raw) return ''
	if (/^https?:\/\//i.test(raw)) return raw

	const normalized = raw.startsWith('/') ? raw : `/${raw}`
	const base = (BASE_API || '').replace(/\/$/, '')
	const originMatch = base.match(/^(https?:\/\/[^/]+)(\/.*)?$/i)
	if (!originMatch) {
		// H5 代理模式：BASE_API 为 /api/v1/mp，同源相对路径直接可用
		return normalized
	}

	const origin = originMatch[1]
	// 保留 /api 前的网关前缀（如 /deploymentApi）
	const pathPart = originMatch[2] || ''
	const apiIdx = pathPart.toLowerCase().indexOf('/api/')
	const gatewayPrefix = apiIdx >= 0 ? pathPart.slice(0, apiIdx) : ''

	if (gatewayPrefix && normalized.toLowerCase().indexOf(gatewayPrefix.toLowerCase()) === 0) {
		return `${origin}${normalized}`
	}
	return `${origin}${gatewayPrefix}${normalized}`
}

/** 本地存储 Token 键名 */
export const TOKEN_KEY = 'fe_token'

/** 后端统一响应成功码 */
export const SUCCESS_CODE = 200

/** 智能体 ID，对应请求头 X-Agent-Id */
export const AI_AGENT_ID = process.env.VUE_APP_AI_AGENT_ID || 'default'
