package com.qqchen.deploy.backend.deploy.repository;

import com.qqchen.deploy.backend.deploy.entity.TeamMember;
import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

@Repository
public interface ITeamMemberRepository extends IBaseRepository<TeamMember, Long> {

    /**
     * 统计团队成员数量
     */
    Long countByTeamIdAndDeletedFalse(Long teamId);

    /**
     * 检查成员是否已加入团队
     */
    boolean existsByTeamIdAndUserIdAndDeletedFalse(Long teamId, Long userId);

    /**
     * 根据团队ID和用户ID查询
     */
    Optional<TeamMember> findByTeamIdAndUserIdAndDeletedFalse(Long teamId, Long userId);

    /**
     * 根据用户ID查询所有团队成员记录
     */
    List<TeamMember> findByUserIdAndDeletedFalse(Long userId);

    /**
     * 批量查询用户在指定团队列表中的成员记录
     */
    List<TeamMember> findByUserIdAndTeamIdInAndDeletedFalse(Long userId, List<Long> teamIds);

    /**
     * 批量查询指定团队列表的所有成员
     */
    List<TeamMember> findByTeamIdInAndDeletedFalse(List<Long> teamIds);
}
