using adas_core.Domain.Enums;

namespace adas_core.Application.Exceptions;

/// <summary>
/// Represents the exception that is thrown when data is encountered in a format that is not valid or expected.
/// </summary>
/// <!-- aidoc:v1 sig=e46b8ff -->
public class InvalidFormatException : Exception
{
    /// <summary>
    /// Initializes a new instance of the <see cref="InvalidFormatException"/> class with a specified error message.
    /// </summary>
    /// <param name="message">The error message that describes the reason for the exception.</param>
    /// <!-- aidoc-review:v1 severity=medium kind=wrong_param_role
    ///      "The parameter is of type HttpEnum.ErrorMessage (an enum), not an error message string. It is documented as 'The error message that describes the reason for the exception', which mischaracterizes its role." -->
    public InvalidFormatException(HttpEnum.ErrorMessage message) : base(((int)message).ToString())
    {
    }

    /// <summary>
    /// Initializes a new instance of the <see cref="InvalidFormatException"/> class with a specified error message.
    /// </summary>
    /// <param name="message">The error message that describes the reason for the exception.</param>
    /// <!-- aidoc:v1 sig=8a27f52 body=4448e1d -->
    public InvalidFormatException(string message) : base(message)
    {
    }
}