package com.liquidnet.service.kylin.service;

import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.KylinCandyItemParam;
import com.liquidnet.service.kylin.dto.param.KylinPerformanceSubscribeParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinCandyVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinPerformanceArtistLineupVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 * 演出 服务类
 * </p>
 *
 * @author liquidnet
 * @since 2021-05-05
 */
public interface IKylinPerformancesService {

    /**
     * 根据 券适用范围查询演出id
     *
     * @param useScope
     * @param busiId
     * @return
     */
    ResponseDto<String> getPerformanceIdByInfo(Integer useScope, String busiId);

    ResponseDto<String> subscribe(String performancesId, Integer sourceType);

    ResponseDto<Integer> isSubscribe(String performancesId);

    ResponseDto<List<KylinCandyVo>> kylinCandy(List<KylinCandyItemParam> data, String roadShowId);

    /**
     * 演出预约
     *
     * @param param
     * @author zjp
     * @return: com.liquidnet.service.base.ResponseDto<java.lang.String>
     * @date 2024/3/12 14:39
     */
    ResponseDto<String> performanceSubscribe(HttpServletRequest request, KylinPerformanceSubscribeParam param);

    /**
     * 是否演出预约
     *
     * @param performancesId
     * @param ticketTimesId
     * @author zjp
     * @return: com.liquidnet.service.base.ResponseDto<java.lang.Integer>
     * @date 2024/3/6 14:45
     */
    ResponseDto<Integer> performanceIsSubscribe(String performancesId, String ticketTimesId, String ticketsId);


    /*
     * @description:删除预约演出票种
     * @author: zjp
     * @date: 2024/5/15 14:10
     * @param:
     * @return:
     **/
    void deleteIsSubscribe(String performancesId, String ticketTimesId, String ticketsId);

    /**
     * 根据演出ID获取演出阵容
     * @param performancesId
     * @return
     */
    List<KylinPerformanceArtistLineupVo> performanceArtists(String performancesId);
}
