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

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

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

/**
 * Jenkins构建通知记录Repository
 *
 * @author qqchen
 * @since 2025-11-11
 */
@Repository
public interface IJenkinsBuildNotificationRepository 
        extends IBaseRepository<JenkinsBuildNotification, Long> {

    /**
     * 根据构建ID、团队ID和环境ID查询通知记录
     *
     * @param buildId 构建记录ID
     * @param teamId 团队ID
     * @param environmentId 环境ID
     * @return 通知记录（如果存在）
     */
    Optional<JenkinsBuildNotification> findByBuildIdAndTeamIdAndEnvironmentId(
            Long buildId, Long teamId, Long environmentId);

    /**
     * 查询未完成结束通知的记录
     *
     * @return 未完成结束通知的记录列表
     */
    List<JenkinsBuildNotification> findByBuildEndNoticeFalseAndDeletedFalse();

    /**
     * 根据构建ID批量查询通知记录
     *
     * @param buildIds 构建ID集合
     * @return 通知记录列表
     */
    List<JenkinsBuildNotification> findByBuildIdInAndDeletedFalse(Collection<Long> buildIds);
}
