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

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

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

/**
 * 团队环境配置Repository
 *
 * @author qqchen
 * @since 2025-11-04
 */
@Repository
public interface ITeamEnvironmentConfigRepository extends IBaseRepository<TeamEnvironmentConfig, Long> {

    /**
     * 根据团队ID查询所有环境配置（按创建时间正序）
     */
    List<TeamEnvironmentConfig> findByTeamIdOrderByIdAsc(Long teamId);

    /**
     * 根据团队ID列表批量查询
     */
    List<TeamEnvironmentConfig> findByTeamIdIn(List<Long> teamIds);

    /**
     * 根据团队ID和环境ID查询
     */
    Optional<TeamEnvironmentConfig> findByTeamIdAndEnvironmentId(Long teamId, Long environmentId);

    /**
     * 根据环境ID查询所有团队配置
     */
    List<TeamEnvironmentConfig> findByEnvironmentId(Long environmentId);

    /**
     * 检查团队环境配置是否存在
     */
    boolean existsByTeamIdAndEnvironmentId(Long teamId, Long environmentId);

    /**
     * 统计配置了指定环境的团队数量
     */
    Long countByEnvironmentId(Long environmentId);
}

