using ExperionCrawler.Core.Application.DTOs;

namespace ExperionCrawler.Core.Application.Interfaces;

/// <summary>Text-to-SQL 시계열 쿼리 서비스</summary>
public interface ITextToSqlService
{
    /// <summary>자연어 질의를 SQL로 변환</summary>
    Task<string> ParseNaturalLanguageAsync(string input);

    /// <summary>SQL 쿼리 실행 및 결과 반환</summary>
    Task<SqlQueryResultDto> ExecuteQueryAsync(string sql, int? limit = 1000);

    /// <summary>쿼리 제안 (자동 완성)</summary>
    Task<IEnumerable<string>> SuggestQueriesAsync(string partialInput);

    /// <summary>시계열 분석 (평균, 최대, 최소, 추세)</summary>
    Task<TimeSeriesAnalysisDto> AnalyzeAsync(AnalyzeRequestDto dto);
}
