namespace EnvelopeGenerator.ReceiverUI.Client.Services.Base; /// /// Einheitliches Response-Objekt für ALLE API-Aufrufe. /// /// WARUM: Jeder API-Aufruf kann fehlschlagen (Netzwerk, 401, 500...). /// Statt überall try-catch zu haben, kapselt dieses Objekt Erfolg/Fehler einheitlich. /// So kann jede Blazor-Komponente einheitlich darauf reagieren. /// public record ApiResponse { public bool IsSuccess { get; init; } public T? Data { get; init; } public int StatusCode { get; init; } public string? ErrorMessage { get; init; } public static ApiResponse Success(T data, int statusCode = 200) => new() { IsSuccess = true, Data = data, StatusCode = statusCode }; public static ApiResponse Failure(int statusCode, string? error = null) => new() { IsSuccess = false, StatusCode = statusCode, ErrorMessage = error }; } /// /// Response ohne Daten (für POST/PUT/DELETE die nur Status zurückgeben). /// public record ApiResponse { public bool IsSuccess { get; init; } public int StatusCode { get; init; } public string? ErrorMessage { get; init; } public static ApiResponse Success(int statusCode = 200) => new() { IsSuccess = true, StatusCode = statusCode }; public static ApiResponse Failure(int statusCode, string? error = null) => new() { IsSuccess = false, StatusCode = statusCode, ErrorMessage = error }; }