public record ApiResponse(bool Success, int StatusCode, T? Data, ApiError? Error) { public static ApiResponse Ok(T data) => new(true, 200, data, null); public static ApiResponse Created(T data) => new(true, 201, data, null); public static ApiResponse Fail(int statusCode, string message, string code) => new(false, statusCode, default, new ApiError(message, code)); } public record ApiError(string Message, string Code);