package tech.easyflow.ai.service.discovery;

import java.math.BigInteger;
import java.util.List;

/**
 * 单个服务商的远端模型发现结果。
 */
public final class RemoteModelListResult {

    /** 服务商 ID。 */
    private final BigInteger providerId;
    /** 统一模型列表。 */
    private final List<RemoteModelDescriptor> models;
    /** 远端结果是否超过服务端安全上限。 */
    private final boolean truncated;

    /**
     * 创建远端模型发现结果。
     *
     * @param providerId 服务商 ID
     * @param models 统一模型列表
     * @param truncated 是否因数量上限而截断
     */
    public RemoteModelListResult(BigInteger providerId,
                                 List<RemoteModelDescriptor> models,
                                 boolean truncated) {
        this.providerId = providerId;
        this.models = List.copyOf(models);
        this.truncated = truncated;
    }

    /** @return 服务商 ID */
    public BigInteger getProviderId() {
        return providerId;
    }

    /** @return 不可变远端模型列表 */
    public List<RemoteModelDescriptor> getModels() {
        return models;
    }

    /** @return 结果被截断返回 true */
    public boolean isTruncated() {
        return truncated;
    }
}
