package org.xyzh.api.workcase.service;

import com.alibaba.fastjson2.JSONObject;

/**
 * @description    Jitsi Meet JWT Token服务接口
 * @filename    JitsiTokenService.java
 * @author    claude
 * @copyright xyzh
 * @since 2025-12-25
 */
public interface JitsiTokenService {

    /**
     * @description    生成Jitsi Meet JWT Token
     * @param roomName Jitsi房间名
     * @param userId 用户ID
     * @param userName 用户名称
     * @param isModerator 是否为主持人
     * @return JWT Token字符串
     * @author    claude
     * @since 2025-12-25
     */
    String generateJwtToken(String roomName, String userId, String userName, boolean isModerator);

    /**
     * @description    验证JWT Token是否有效
     * @param token JWT Token
     * @return boolean
     * @author    claude
     * @since 2025-12-25
     */
    boolean validateJwtToken(String token);

    /**
     * @description    构建Jitsi Meet iframe URL
     * @param roomName Jitsi房间名
     * @param jwtToken JWT Token
     * @param config Jitsi配置项（可选）
     * @return iframe URL字符串
     * @author    claude
     * @since 2025-12-25
     */
    String buildIframeUrl(String roomName, String jwtToken, JSONObject config);

    /**
     * @description    生成唯一的Jitsi房间名
     * @param workcaseId 工单ID
     * @return 房间名字符串
     * @author    claude
     * @since 2025-12-25
     */
    String generateRoomName(String workcaseId);
}
