package org.dromara.mp.service;

import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket;

/**
 * 微信公众号二维码生成服务接口
 *
 * @author pengles
 */
public interface WxMpQrCodeService {

    /**
     * 创建临时二维码
     *
     * @param sceneId       场景值ID
     * @param expireSeconds 过期时间（秒）
     * @return 二维码ticket
     */
    WxMpQrCodeTicket createTempQrCode(int sceneId, int expireSeconds);

    /**
     * 创建永久二维码
     *
     * @param sceneStr 场景值字符串
     * @return 二维码ticket
     */
    WxMpQrCodeTicket createPermanentQrCode(String sceneStr);

    /**
     * 创建永久二维码（别名方法）
     *
     * @param sceneStr 场景值字符串
     * @return 二维码ticket
     */
    WxMpQrCodeTicket createForeverQrCode(String sceneStr);

    /**
     * 创建永久二维码
     *
     * @param sceneId 场景值ID
     * @return 二维码ticket
     */
    WxMpQrCodeTicket createPermanentQrCode(int sceneId);

    /**
     * 通过ticket换取二维码图片URL
     *
     * @param ticket 二维码ticket
     * @return 二维码图片URL
     */
    String getQrCodeUrl(String ticket);

    /**
     * 创建用户邀请二维码
     *
     * @param userId 用户ID
     * @return 二维码ticket
     */
    WxMpQrCodeTicket createUserInviteQrCode(String userId);

    /**
     * 创建活动推广二维码
     *
     * @param activityId 活动ID
     * @return 二维码ticket
     */
    WxMpQrCodeTicket createActivityQrCode(String activityId);

    /**
     * 创建渠道推广二维码
     *
     * @param channelId 渠道ID
     * @return 二维码ticket
     */
    WxMpQrCodeTicket createChannelQrCode(String channelId);
}