package com.ruoyi.bst.team.service;

import java.util.List;
import com.ruoyi.bst.team.domain.Team;
import com.ruoyi.bst.team.domain.TeamVO;
import com.ruoyi.bst.team.domain.TeamQuery;
import com.ruoyi.bst.teamUser.domain.TeamUserQuery;
import com.ruoyi.bst.teamUser.domain.TeamUserVO;

/**
 * 拼桌Service接口
 *
 * @author ruoyi
 * @date 2025-05-22
 */
public interface TeamService
{
    /**
     * 查询拼桌
     *
     * @param id 拼桌主键
     * @return 拼桌
     */
    public TeamVO selectTeamById(Long id);

    /**
     * 查询拼桌列表
     *
     * @param team 拼桌
     * @return 拼桌集合
     */
    public List<TeamVO> selectTeamList(TeamQuery team);

    /**
     * 新增拼桌
     *
     * @param team 拼桌
     * @return 结果
     */
    public int insertTeam(Team team);

    /**
     * 修改拼桌
     *
     * @param team 拼桌
     * @return 结果
     */
    public int updateTeam(Team team);

    /**
     * 批量删除拼桌
     *
     * @param ids 需要删除的拼桌主键集合
     * @return 结果
     */
    public int deleteTeamByIds(Long[] ids);

    /**
     * 删除拼桌信息
     *
     * @param id 拼桌主键
     * @return 结果
     */
    public int deleteTeamById(Long id);

    int createTeam(Team team,Long userId);

    int joinTeam(Long teamId, Long userId);

    int invitedTeam(Long teamId, Long userId, Long inviterId);

    int exitTeam(Long teamId, Long userId);

    int disTeam(Long teamId);

    TeamVO selectOne(TeamQuery query);

    List<TeamUserVO> getTeammate(Long teamId);
}
