namespace Hc900Crawler.Core.Application.Services;

/// <summary>
/// SQL 검증기 설정 옵션
/// </summary>
public class SqlValidatorOptions
{
    /// <summary>
    /// FROM / JOIN 에 반드시 포함되어야 할 테이블
    /// </summary>
    public HashSet<string> RequiredTables { get; init; } = ["history_table"];

    /// <summary>
    /// 참조 가능한 테이블 목록 (비어있으면 모두 허용)
    /// </summary>
    public HashSet<string> AllowedTables { get; init; } =
    [
        "history_table",
        "node_map_master",
    ];

    /// <summary>
    /// 허용 서브쿼리 최대 깊이
    /// </summary>
    public int MaxSubqueryDepth { get; init; } = 4;

    public static SqlValidatorOptions Default => new();
}
