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

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

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

/**
 * Jenkins构建信息仓库接口
 */
@Repository
public interface IJenkinsBuildRepository extends IBaseRepository<JenkinsBuild, Long> {
    
    /**
     * 根据外部系统ID、任务ID和构建号查询构建信息
     *
     * @param externalSystemId 外部系统ID
     * @param jobId 任务ID
     * @param buildNumber 构建号
     * @return 构建信息
     */
    Optional<JenkinsBuild> findByExternalSystemIdAndJobIdAndBuildNumber(
        Long externalSystemId, Long jobId, Integer buildNumber);

    /**
     * 根据外部系统ID和任务ID查询所有构建信息
     *
     * @param externalSystemId 外部系统ID
     * @param jobId 任务ID
     * @return 构建信息列表
     */
    List<JenkinsBuild> findByExternalSystemIdAndJobId(Long externalSystemId, Long jobId);

    /**
     * 查询指定任务的最新构建记录
     *
     * @param externalSystemId 外部系统ID
     * @param jobId 任务ID
     * @return 最新的构建记录
     */
    Optional<JenkinsBuild> findTopByExternalSystemIdAndJobIdOrderByBuildNumberDesc(
        Long externalSystemId, Long jobId);
} 