package com.xiang.xservice.application.script.fwd.service;

import com.xiang.xservice.basic.common.req.BaseRequest;
import com.xiang.xservice.application.script.fwd.entity.req.ProjectOrderCreateReq;
import com.xiang.xservice.application.script.fwd.entity.resp.http.audience.AudienceMemberInfo;
import com.xiang.xservice.application.script.fwd.entity.resp.http.perform.Perform;
import com.xiang.xservice.application.script.fwd.entity.resp.http.perform.ProjectInfoResp;
import com.xiang.xservice.application.script.fwd.entity.resp.http.perform.ProjectOrderCreateResp;
import com.xiang.xservice.application.script.fwd.entity.resp.http.perform.ProjectsResp;
import com.xiang.xservice.application.script.fwd.entity.resp.http.perform.SeatPlanStatus;

import java.util.List;

public interface IPerformServiceHttp {

    /**
     * http请求查询全部演出列表
     * @return ProjectsResp
     */
    ProjectsResp getShowProjectsFromHttp(BaseRequest request);

    /**
     * http请求根据projectId查询演出详情
     * @param projectId projectId
     * @return ProjectInfoResp
     */
    ProjectInfoResp getProjectInfoFromHttp(Long projectId, String token);

    /**
     * http请求创建演出订单
     * @param req 创建请求参数
     * @return ProjectOrderCreateResp
     */
    ProjectOrderCreateResp createProjectOrder(ProjectOrderCreateReq req, String token);

    /**
     * http请求查询演出票务信息
     * @param projectId
     * @return
     */
    Perform getPerformsByProjectIdFromHttp(Long projectId, String token);

    /**
     * http请求获取座位状态信息
     * @param seatPlanIds
     * @return
     */
    List<SeatPlanStatus> getSeatPlanStatusFromHttp(List<Long> seatPlanIds, String token);

    /**
     * http请求查询观影人信息
     * @param token
     * @return
     */
    List<AudienceMemberInfo> getAudienceMemberInfo(String token);

    /**
     * http请求获取时间
     * @return
     */
    Long getServerTimeStamp();


}
