package com.jeesharp.business.modules.marketing.application.support;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;

/**
 * 微信小程序 scene 参数生成辅助。
 *
 * @author jeesharp
 * @since 2026-06-25
 */
public final class MarketingWxSceneSupport {

    private static final int WX_SCENE_MAX_LEN = 32;

    private MarketingWxSceneSupport() {
    }

    /**
     * 根据租户编码与渠道编码生成 scene（≤32 字符）。
     */
    public static String buildWxScene(String tenantCode, String channelCode) {
        String tc = StrUtil.blankToDefault(tenantCode, "T").trim();
        String ch = StrUtil.blankToDefault(channelCode, "DEFAULT").trim();
        String raw = tc + "_" + ch;
        if (raw.length() <= WX_SCENE_MAX_LEN) {
            return raw;
        }
        return DigestUtil.md5Hex(raw).substring(0, WX_SCENE_MAX_LEN);
    }
}
