package cn.reghao.devops.web.mgr.app.db.query;

import cn.reghao.devops.common.agent.app.dto.AppInfo;
import cn.reghao.devops.web.mgr.app.model.po.AppBuilding;
import cn.reghao.devops.web.mgr.app.model.po.config.AppConfig;
import cn.reghao.devops.web.mgr.app.model.po.config.AppDeployConfig;
import cn.reghao.devops.web.mgr.app.model.vo.AppDeployConfigVo;
import cn.reghao.devops.web.mgr.app.model.vo.AppDeployingVO;
import cn.reghao.devops.web.mgr.app.model.vo.AppRunning;
import cn.reghao.devops.web.mgr.app.model.vo.AppRunningVO;
import cn.reghao.jutil.jdk.db.BaseQuery;
import cn.reghao.jutil.jdk.db.PageList;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @author reghao
 * @date 2021-06-02 15:01:18
 */
public interface AppDeployQuery extends BaseQuery<AppDeployConfig> {
    Page<AppDeployConfig> findByAppId(String appId, Pageable pageable);
    AppDeployConfig findByAppIdAndMachineId(String appId, String machineId);
    List<AppInfo> getAppsByMachineId(String machineId);
    List<AppDeployingVO> get(String appId, AppBuilding appBuilding);
    boolean isDeploying(String appId, String machineId);
    Page<AppDeployConfigVo> indexPage(String appId, PageRequest pageRequest);
    PageList<AppRunningVO> getAppRunningByPage(String env, String appType, int pageNumber, int pageSize);
    List<AppRunning> getAppRunning(String appId);
}
