package com.agent.management.service;

import com.agent.management.model.entity.DataSource;

import java.util.List;

public interface DataSourceService {

    DataSource create(DataSource ds);

    DataSource update(Long id, DataSource ds);

    void delete(Long id);

    /**
     * 测试连接（不持久化结果）
     */
    TestResult testConnection(DataSource ds);

    /**
     * 测试已有数据源连接并持久化结果
     */
    TestResult testExisting(Long id);

    DataSource get(Long id);

    /**
     * 获取已解密的明文密码（仅内部 SchemaExplorer 等使用，不入 Controller）
     */
    DataSource getDecrypted(Long id);

    List<DataSource> listAll();

    record TestResult(boolean success, String message) {}
}
