Files

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);