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

import com.qqchen.deploy.backend.deploy.entity.Server;
import com.qqchen.deploy.backend.deploy.enums.ServerStatusEnum;
import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 服务器仓储接口
 */
@Repository
public interface IServerRepository extends IBaseRepository<Server, Long> {

    /**
     * 根据IP地址查询（排除已删除）
     *
     * @param hostIp IP地址
     * @return 服务器
     */
    Server findByHostIpAndDeletedFalse(String hostIp);

    /**
     * 检查IP地址是否存在（排除已删除）
     *
     * @param hostIp IP地址
     * @return 是否存在
     */
    boolean existsByHostIpAndDeletedFalse(String hostIp);

    /**
     * 根据状态和删除标记查询服务器列表
     *
     * @param status 服务器状态
     * @param deleted 是否删除
     * @return 服务器列表
     */
    List<Server> findByStatusAndDeleted(ServerStatusEnum status, boolean deleted);
}

