using System;

namespace ExperionCrawler.Core.Application.Exceptions;

/// <summary>
/// TextToSqlService 관련 예외를 나타내는 커스텀 예외 클래스입니다.
/// </summary>
public class TextToSqlServiceException : Exception
{
    /// <summary>
    /// 예외의 고유 에러 코드입니다.
    /// </summary>
    public string ErrorCode { get; }

    /// <summary>
    /// 사용자에게 안전하게 보여줄 수 있는 메시지입니다.
    /// </summary>
    public string UserFriendlyMessage { get; }

    public TextToSqlServiceException(string message, string errorCode, string userFriendlyMessage) 
        : base(message)
    {
        ErrorCode = errorCode;
        UserFriendlyMessage = userFriendlyMessage;
    }

    public TextToSqlServiceException(string message, string errorCode, string userFriendlyMessage, Exception innerException) 
        : base(message, innerException)
    {
        ErrorCode = errorCode;
        UserFriendlyMessage = userFriendlyMessage;
    }
}
