namespace Govor.Domain.Common; public record Error(string Code, string Message, ErrorType Type, Dictionary? Errors = null) { public static Error NotFound(string code, string message) => new(code, message, ErrorType.NotFound); public static Error Validation(string code, string message, Dictionary? errors = null) => new(code, message, ErrorType.Validation, errors); public static Error Conflict(string code, string message) => new(code, message, ErrorType.Conflict); public static Error Unauthorized(string code, string message) => new(code, message, ErrorType.Unauthorized); public static Error Forbidden(string code, string message) => new(code, message, ErrorType.Forbidden); public static Error Failure(string code, string message) => new(code, message, ErrorType.Failure); public override string ToString() => $"{Code}: {Message}"; }