using QuantEngine.Core.Models;

namespace QuantEngine.Core.Interfaces;

/// <summary>
/// Price Source 공통 인터페이스 — SOLID Liskov Substitution 준수
/// </summary>
public interface IPriceSource
{
    /// <summary>소스 이름 (kis_open_api, naver_finance, json)</summary>
    string SourceName { get; }

    /// <summary>
    /// 종목 가격 데이터 조회
    /// </summary>
    /// <param name="ticker">종목 코드 (6자리)</param>
    /// <param name="account">계좌 구분 (real, mock)</param>
    /// <returns>PriceSourceResult (status OK 또는 ERROR)</returns>
    Task<PriceSourceResult> GetPriceDataAsync(string ticker, string account);
}
