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

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

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

/**
 * Git仓库组Repository
 */
@Repository
public interface IRepositoryGroupRepository extends IBaseRepository<RepositoryGroup, Long> {
    
    /**
     * 根据外部系统ID查找仓库组
     *
     * @param externalSystemId 外部系统ID
     * @return 仓库组列表
     */
    List<RepositoryGroup> findByExternalSystemId(Long externalSystemId);

    /**
     * 统计外部系统的仓库组数量
     *
     * @param externalSystemId 外部系统ID
     * @return 仓库组数量
     */
    Long countByExternalSystemId(Long externalSystemId);


    /**
     * 根据外部系统ID删除所有仓库组
     *
     * @param externalSystemId 外部系统ID
     */
    void deleteByExternalSystemId(Long externalSystemId);

    List<RepositoryGroup> findByExternalSystemIdAndDeletedFalse(Long externalSystemId);

    Optional<RepositoryGroup> findByRepoGroupId(Long repoGroupId);
}