package com.easyagents.federation.sql.api;

import java.util.List;

/**
 * SQL 补全结果。
 *
 * @param replaceStart 建议替换区间起点，使用 UTF-16 字符偏移
 * @param replaceEnd 建议替换区间终点，使用 UTF-16 字符偏移
 * @param items 补全候选
 */
public record SqlCompletionResult(
    int replaceStart,
    int replaceEnd,
    List<SqlCompletionItem> items
) {

    /**
     * 校验并防御性复制补全结果。
     */
    public SqlCompletionResult {
        if (replaceStart < 0 || replaceEnd < replaceStart) {
            throw new IllegalArgumentException("completion replacement range is invalid");
        }
        items = List.copyOf(items == null ? List.of() : items);
    }
}
