package com.webgame.webgamebackend.service; import com.webgame.webgamebackend.common.dto.game.*; /** * 游戏服务接口 */ public interface GameService { /** * 获取游戏列表 * * @return 所有启用的游戏信息 */ GameListResponse getGameList(); /** * 获取指定游戏的房间列表 * * @param gameId 游戏标识 * @param status 状态筛选(可选),不传返回所有未结束的房间 * @return 房间列表 */ RoomListResponse getRoomList(String gameId, String status); /** * 创建房间 * * @param request 创建房间请求 * @param creatorId 房主 account_id * @return 新建的房间信息 */ CreateRoomResponse createRoom(CreateRoomRequest request, String creatorId); /** * 加入房间 * * @param request 加入房间请求 * @param userId 用户 account_id * @return 房间信息 */ RoomItemResponse joinRoom(JoinRoomRequest request, String userId); /** * 离开房间 * * @param roomId 房间 ID * @param userId 用户 account_id */ void leaveRoom(String roomId, String userId); /** * 房主踢出玩家 * * @param roomId 房间 ID * @param ownerId 房主 account_id * @param targetUserId 目标用户 account_id */ void kickPlayer(String roomId, String ownerId, String targetUserId); /** * 切换准备状态 * * @param roomId 房间 ID * @param userId 用户 account_id * @return 切换后的准备状态 */ boolean toggleReady(String roomId, String userId); /** * 开始游戏 * * @param roomId 房间 ID * @param ownerId 房主 account_id */ void startGame(String roomId, String ownerId); }