package shop.alien.store.service;

/**
 * 微信小程序二维码服务接口
 *
 * @author system
 * @since 2025-01-XX
 */
public interface WeChatMiniProgramQrCodeService {

    /**
     * 获取微信Access Token
     *
     * @return access_token
     */
    String getAccessToken();

    /**
     * 生成小程序二维码
     *
     * @param scene     场景参数（最大32字符）
     * @param page      小程序页面路径（可选，为空使用默认配置）
     * @param width     二维码宽度（默认430，范围280-1280）
     * @return 二维码图片字节数组
     */
    byte[] generateQrCode(String scene, String page, Integer width);

    /**
     * 生成小程序二维码并上传到OSS
     *
     * @param scene     场景参数（最大32字符）
     * @param page      小程序页面路径（可选，为空使用默认配置）
     * @param width     二维码宽度（默认430，范围280-1280）
     * @param ossPath   OSS存储路径
     * @return 二维码URL
     */
    String generateQrCodeAndUpload(String scene, String page, Integer width, String ossPath);

    /**
     * 为桌号生成小程序二维码
     *
     * @param tableId   桌号ID
     * @param storeId   门店ID
     * @return 二维码URL
     */
    String generateTableQrCode(Integer tableId, Integer storeId);
}
