package com.qqchen.deploy.backend.deploy.service;

import com.qqchen.deploy.backend.deploy.entity.ExternalSystem;
import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
import com.qqchen.deploy.backend.framework.service.IBaseService;
import com.qqchen.deploy.backend.deploy.entity.JenkinsJob;
import com.qqchen.deploy.backend.deploy.dto.JenkinsJobDTO;
import com.qqchen.deploy.backend.deploy.query.JenkinsJobQuery;
import java.util.List;

/**
 * Jenkins任务 Service接口
 */
public interface IJenkinsJobService extends IBaseService<JenkinsJob, JenkinsJobDTO, JenkinsJobQuery, Long> {

    /**
     * 同步指定视图下的Jenkins任务
     *
     * @param externalSystem 外部系统
     * @param view 视图
     * @return 同步的任务数量
     */
    Integer syncJobsByView(ExternalSystem externalSystem, JenkinsView view);

    /**
     * 同步外部系统下所有视图的Jenkins任务
     *
     * @param externalSystemId 外部系统ID
     * @return 同步的任务总数
     */
    Integer syncJobs(Long externalSystemId);

    /**
     * 根据外部系统ID查询所有任务
     *
     * @param externalSystemId 外部系统ID
     * @return 任务列表
     */
    List<JenkinsJobDTO> findByExternalSystemId(Long externalSystemId);
} 