using adas_core.Domain.Enums;

namespace adas_core.Application.Exceptions;

/// <summary>
/// Represents an exception that is thrown when a bad or invalid request is received.
/// It serves as a specialized error type derived from the base <see cref="Exception"/> class for signaling client-side request failures.
/// </summary>
/// <!-- aidoc:v1 sig=aec5b9f -->
public class BadRequestException : Exception
{
    /// <summary>
    /// Initializes a new instance of the <see cref="BadRequestException"/> class with a specified error message.
    /// </summary>
    /// <param name="message">The error message defined in <see cref="HttpEnum.ErrorMessage"/> that describes the reason for the exception.</param>
    /// <!-- aidoc:v1 sig=2324fae body=4448e1d -->
    public BadRequestException(HttpEnum.ErrorMessage message) : base(((int)message).ToString())
    {
    }

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