using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections.Immutable; namespace dopt.DeltaBarth.DataObjects { /// /// Eine verpackte Fehlermeldung, die vom API-Server zur Verfügung gestellt wurde. /// public record class ApiServerError { /// /// Statuscode der HTTP-Anfrage /// public required int status_code { get; init; } /// /// Fehlerbezeichnung /// public required string message { get; init; } /// /// optional: spezifischer Code als Text, der vom Server ausgegeben wurde /// public string? code { get; init; } /// /// optional: spezifische Hinweise als Text, der vom Server ausgegeben wurde /// public string? hints { get; init; } /// /// optional: spezifischer Typus als Text, der vom Server ausgegeben wurde /// public string? type { get; init; } /// /// optional: spezifischer Titel als Text, der vom Server ausgegeben wurde /// public string? title { get; init; } /// /// optional: spezifischer ID (vermutlich zur Nachverfolgung) als Text, der vom Server ausgegeben wurde /// public string? traceId { get; init; } } /// /// Status-Objekt: Gibt Aufschluss über Erfolg/Misserfolg einer Routine und beschreibt aufgetretene Fehler /// mit zusätzlichen Informationen /// public record class Status { /// /// bibliotheksinterner Fehlercode /// public required int code { get; init; } /// /// Fehlerbeschreibung oder Python-Exception-Name /// public required string description { get; init; } /// /// genauere Beschreibung oder Fehler-Inhalt /// public required string message { get; init; } /// /// optional: eventuell aufgetretener API-Server-Fehler /// public ApiServerError? apiServerError { get; init; } } /// /// Nutzerdaten zur API-Interaktion /// public record class Credentials { /// /// Nutzername /// public required string username { get; init; } /// /// Passwort /// public required string password { get; init; } /// /// Datenbank /// public required string database { get; init; } /// /// Mandant /// public required string mandant { get; init; } } /// /// Einzelergebnis der Umsatzprognose, 1 Eintrag von potenziell mehreren /// public record class UmsatzPrognoseEinzelergebnis { /// /// Jahr des Eintrags /// public required int jahr { get; init; } /// /// Monat des Eintrags /// public required int monat { get; init; } /// /// Prognosewert für den Umsatz /// public required decimal vorhersage { get; init; } } /// /// Sammlung von unterschiedlichen Einzelergebnissen /// /// public record class UmsatzPrognoseErgebnisse { /// /// unveränderliche Sammlung von Einzelergebnissen in Form eines Array /// public required ImmutableArray daten { get; init; } } /// /// Ausgabe der Prognose-Pipeline: /// enthält das Ergebnis als auch einen dazugehörigen Status /// public record class UmsatzPrognoseAusgabe { /// /// Sammlung von Prognosewerten /// /// public required UmsatzPrognoseErgebnisse response { get; init; } /// /// Status über den Erfolg/Misserfolg der Routine /// /// public required Status status { get; init; } } }