Files
danyang-match/miniapp/constants/businessLimits.js
T

57 lines
2.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 业务数量参数(规范 §118 App 配置 + AGENTS.md 第 12 条"所有未确认数量参数配置化")
*
* 全部数量限制走配置,禁止页面层硬编码业务常量。
* 实际运行时由 services/appConfigService 从服务端拉取并覆盖默认值(规范 §118)。
* 配置接口失败时使用本文件的安全默认值(规范 §119)。
*/
exports.BUSINESS_LIMITS = {
// 推荐相关
DAILY_RECOMMENDATION_LIMIT: 6, // 每日推荐人数
RECOMMENDATION_PAGE_SIZE: 10, // 推荐分页大小
// 资料相关
MAX_PROFILE_PHOTOS: 6, // 生活照上限
MAX_INTEREST_TAGS: 8, // 兴趣标签上限(规范 §35 不超过 8 个)
MIN_INTRO_LENGTH: 20, // 自我介绍最小字数
MAX_INTRO_LENGTH: 500, // 自我介绍最大字数
MAX_REPORT_LENGTH: 500, // 举报说明最大字数
MAX_FEEDBACK_LENGTH: 500, // 意见反馈最大字数
// 聊天相关
CHAT_IMAGE_ENABLED: false, // V1 默认关闭图片聊天(规范 §76 Feature Flag)
CHAT_MESSAGE_MAX_LENGTH: 1000,
CHAT_HISTORY_PAGE_SIZE: 30, // 聊天历史分页
// 功能开关(规范 §76)
ACTIVITY_ENABLED: true,
MATCHMAKER_ENABLED: true,
ENABLE_RISK_KEYWORD_WARNING: true,
// 后台分页(规范 §82)
PAGE_SIZE_DEFAULT: 20,
PAGE_SIZE_OPTIONS: [20, 50],
// 时长(ms)
TOAST_DURATION: 1500, // 规范 §56:1.5~2 秒
BUTTON_PRESS_FEEDBACK: 120, // 按钮按压反馈时长
// 网络请求
REQUEST_TIMEOUT_MS: 15000,
REQUEST_RETRY_COUNT: 1,
// 联系方式
SUPPORT_CONTACT: '',
};
/**
* 用服务端返回的配置覆盖默认值(规范 §118)
* @param {Partial<typeof exports.BUSINESS_LIMITS>} overrides 服务端配置
* @returns {typeof exports.BUSINESS_LIMITS} 合并后的配置
*/
exports.mergeAppConfig = (overrides) => {
if (!overrides || typeof overrides !== 'object') return exports.BUSINESS_LIMITS;
return { ...exports.BUSINESS_LIMITS, ...overrides };
};