package com.fs.course.service;

import com.fs.common.core.domain.R;
import com.fs.course.domain.FsCourseLink;
import com.fs.course.param.FsCourseLinkCreateParam;
import com.fs.course.param.FsCourseLinkRoomParam;
import com.fs.qw.domain.QwUser;

import java.util.List;

/**
 * 短链Service接口
 *
 * @author fs
 * @date 2024-09-11
 */
public interface IFsCourseLinkService
{
    /**
     * 查询短链
     *
     * @param linkId 短链主键
     * @return 短链
     */
    public FsCourseLink selectFsCourseLinkByLinkId(Long linkId);

    /**
     * 查询短链列表
     *
     * @param fsCourseLink 短链
     * @return 短链集合
     */
    public List<FsCourseLink> selectFsCourseLinkList(FsCourseLink fsCourseLink);

    /**
     * 新增短链
     *
     * @param fsCourseLink 短链
     * @return 结果
     */
    public int insertFsCourseLink(FsCourseLink fsCourseLink);

    /**
     * 修改短链
     *
     * @param fsCourseLink 短链
     * @return 结果
     */
    public int updateFsCourseLink(FsCourseLink fsCourseLink);

    /**
     * 批量删除短链
     *
     * @param linkIds 需要删除的短链主键集合
     * @return 结果
     */
    public int deleteFsCourseLinkByLinkIds(Long[] linkIds);

    /**
     * 删除短链信息
     *
     * @param linkId 短链主键
     * @return 结果
     */
    public int deleteFsCourseLinkByLinkId(Long linkId);

    R createLinkUrl(FsCourseLinkCreateParam param);

    R createLinkUrlWc(FsCourseLinkCreateParam param);

    String createLinkUrlWcmini(FsCourseLinkCreateParam param);

    R getRealLink(String link);

    void delCourseExpireLink();

    void updateLinks();

    R createLinkByMiniApp(FsCourseLinkCreateParam param);

    R createRoomLinkUrl(FsCourseLinkCreateParam param);

    R getRealLinkH5(String link);

    R createRoomLink(FsCourseLinkRoomParam param, QwUser qwUser);

    String testGetAppLink();

    /**
     * 获取跳转微信小程序的链接地址
     * @param linkStr
     * @return
     */
    String getGotoWxAppLink(String linkStr,String appid);

    R getWxaCodeGenerateScheme(String linkStr,String appId);

    R getProjectCode();
}
