using SPMS.Domain.Common; namespace SPMS.Domain.Exceptions; public class SpmsException : Exception { public string ErrorCode { get; } public int HttpStatusCode { get; } public SpmsException(string errorCode, string message, int httpStatusCode = 400) : base(message) { ErrorCode = errorCode; HttpStatusCode = httpStatusCode; } // === 팩토리 메서드 === public static SpmsException BadRequest(string message) => new(ErrorCodes.BadRequest, message, 400); public static SpmsException Unauthorized(string message) => new(ErrorCodes.Unauthorized, message, 401); public static SpmsException NotFound(string message) => new(ErrorCodes.NotFound, message, 404); public static SpmsException Conflict(string message) => new(ErrorCodes.Conflict, message, 409); public static SpmsException Forbidden(string message) => new(ErrorCodes.Forbidden, message, 403); public static SpmsException LimitExceeded(string message) => new(ErrorCodes.LimitExceeded, message, 429); }