package com.zhentao.utils;

import com.tencentyun.TLSSigAPIv2;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * 腾讯云 IM UserSig 生成工具（使用官方库）
 */
@Component
public class TIMUtils {
    
    @Value("${tim.sdkappid}")
    private long sdkAppId;
    
    @Value("${tim.secret}")
    private String secret;
    
    /**
     * 生成 UserSig
     * @param userId 用户ID
     * @return UserSig
     */
    public String generateUserSig(String userId) {
        return generateUserSig(userId, 7 * 24 * 3600); // 7天有效期
    }
    
    /**
     * 生成 UserSig（使用腾讯云官方API）
     * @param userId 用户ID
     * @param expire 过期时间（秒）
     * @return UserSig
     */
    public String generateUserSig(String userId, long expire) {
        try {
            // 使用腾讯云官方的 TLSSigAPIv2 生成 UserSig
            TLSSigAPIv2 api = new TLSSigAPIv2(sdkAppId, secret);
            String userSig = api.genUserSig(userId, expire);
            
            System.out.println("✅ 生成 UserSig 成功");
            System.out.println("   userId: " + userId);
            System.out.println("   sdkAppId: " + sdkAppId);
            System.out.println("   expire: " + expire + " 秒");
            
            return userSig;
        } catch (Exception e) {
            System.err.println("❌ 生成 UserSig 失败: " + e.getMessage());
            e.printStackTrace();
            throw new RuntimeException("生成 UserSig 失败", e);
        }
    }
}
