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