package com.zcloud.zcGbsServicer.api;

import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.zcGbsServicer.dto.VideoPlatformUserQry;
import com.zcloud.zcGbsServicer.dto.VideoPlatformFixedRoomLeaveCmd;
import com.zcloud.zcGbsServicer.dto.VideoPlatformFixedRoomLoginCmd;
import com.zcloud.zcGbsServicer.dto.VideoPlatformFixedRoomQry;
import com.zcloud.zcGbsServicer.dto.VideoPlatformDepartmentQry;
import com.zcloud.zcGbsServicer.dto.VideoPlatformMeetingAccessCheckQry;
import com.zcloud.zcGbsServicer.dto.VideoPlatformMeetingMemberQry;
import com.zcloud.zcGbsServicer.dto.VideoRoomAuthRoomCmd;
import com.zcloud.zcGbsServicer.dto.VideoRoomAuthUserCmd;
import com.zcloud.zcGbsServicer.dto.VideoRoomCreateInstantCmd;
import com.zcloud.zcGbsServicer.dto.VideoRoomOnlineRoomQry;
import com.zcloud.zcGbsServicer.dto.clientobject.VideoPlatformConfigCO;
import com.zcloud.zcGbsServicer.dto.clientobject.VideoPlatformCurrentMeetingCO;
import com.zcloud.zcGbsServicer.dto.clientobject.VideoPlatformLoginCO;
import com.zcloud.zcGbsServicer.dto.clientobject.VideoPlatformMeetingAccessCheckCO;
import com.zcloud.zcGbsServicer.dto.clientobject.VideoPlatformMeetingMemberStatusCO;
import com.zcloud.zcGbsServicer.dto.clientobject.VideoPlatformOnlineRoomPageCO;
import com.zcloud.zcGbsServicer.dto.clientobject.VideoPlatformResultCO;
import com.zcloud.zcGbsServicer.dto.clientobject.VideoPlatformTokenCO;
import com.zcloud.zcGbsServicer.dto.clientobject.VideoRoomInstantCO;

import java.util.List;

public interface VideoPlatformServiceI {

    SingleResponse<VideoPlatformConfigCO> getConfig();

    SingleResponse<VideoPlatformTokenCO> generateToken();

    SingleResponse<VideoRoomInstantCO> createInstant(VideoRoomCreateInstantCmd cmd);

    SingleResponse<VideoPlatformResultCO> authUser(VideoRoomAuthUserCmd cmd);

    SingleResponse<VideoPlatformResultCO> authRoom(VideoRoomAuthRoomCmd cmd);

    List<String> getLoginAddr();

    SingleResponse<VideoPlatformOnlineRoomPageCO> onlineRoom(VideoRoomOnlineRoomQry qry);

    SingleResponse<VideoPlatformResultCO> departmentList(VideoPlatformDepartmentQry qry);

    SingleResponse<VideoPlatformResultCO> userList(VideoPlatformUserQry qry);

    SingleResponse<VideoPlatformCurrentMeetingCO> currentFixedMeeting(VideoPlatformFixedRoomQry qry);

    SingleResponse<VideoPlatformMeetingAccessCheckCO> checkFixedMeetingAccess(VideoPlatformMeetingAccessCheckQry qry);

    SingleResponse<VideoPlatformMeetingMemberStatusCO> fixedMeetingMembers(VideoPlatformMeetingMemberQry qry);

    SingleResponse<VideoPlatformLoginCO> fixedRoomLogin(VideoPlatformFixedRoomLoginCmd cmd);

    SingleResponse<VideoPlatformResultCO> fixedRoomLeave(VideoPlatformFixedRoomLeaveCmd cmd);
}
