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