38 lines
1.6 KiB
C#
38 lines
1.6 KiB
C#
namespace GerbilManagerWebAPI.Contracts;
|
|
|
|
/// <summary>Käufer/Abnehmer-Block des Abgabevertrags.</summary>
|
|
/// <param name="Name">Vor- und Nachname inkl. Anrede, z. B. „Herr Max Muster“.</param>
|
|
/// <param name="Address">Anschrift einzeilig: „Straße Nr, PLZ Ort“.</param>
|
|
public sealed record ContractBuyer(
|
|
string Name,
|
|
string Address,
|
|
string? Phone = null,
|
|
string? Email = null);
|
|
|
|
/// <summary>Ein abgegebenes Tier (eine Tabelle im Vertrag pro Tier).</summary>
|
|
/// <param name="Geschlecht">Deutscher Anzeigetext („Weiblich“/„Männlich“) — die
|
|
/// Abbildung vom <c>Gender</c>-Enum passiert im Aufrufer (Phase B), der
|
|
/// Generator bleibt frei von Modell-Abhängigkeiten.</param>
|
|
/// <param name="Photo">Optionales Tierfoto (Rohbytes der Bilddatei) fürs Vertragsbild;
|
|
/// nur der PDF-Generator wertet es aus, der .docx-Generator ignoriert es.</param>
|
|
public sealed record ContractAnimal(
|
|
string Name,
|
|
string Geschlecht,
|
|
DateOnly? Geburtsdatum = null,
|
|
string? Farbschlag = null,
|
|
byte[]? Photo = null);
|
|
|
|
/// <summary>
|
|
/// Alle Eingaben des Vertragsgenerators. Reines Daten-Objekt, keine EF-Typen.
|
|
/// </summary>
|
|
/// <param name="Price">Kaufpreis in Euro; gerendert als de-DE, z. B. „72,00 €“.</param>
|
|
/// <param name="HandoverDate">Übergabedatum (Abschnitt 3), Format TT.MM.JJJJ.</param>
|
|
/// <param name="ContractDate">Datum der Unterschriftszeile; Standard = Übergabedatum.</param>
|
|
public sealed record ContractData(
|
|
BreederProfile Seller,
|
|
ContractBuyer Buyer,
|
|
IReadOnlyList<ContractAnimal> Animals,
|
|
decimal Price,
|
|
DateOnly HandoverDate,
|
|
DateOnly? ContractDate = null);
|