FEAT-13: ContractGenerator (pure OpenXml, embedded template, per-animal table cloning) + BreederProfile/ContractData records + 10 xUnit tests incl. schema validation & PII guard

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-06 07:09:07 +02:00
parent e4b7558abd
commit cbe77c927a
5 changed files with 445 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
namespace GerbilManagerWebAPI.Contracts;
/// <summary>
/// Zuchtprofil — der parameterisierte Verkäufer-Block des Abgabevertrags.
/// Phase A: wird aus der appsettings-Sektion <c>"BreederProfile"</c> gebunden
/// (z. B. <c>builder.Configuration.GetSection("BreederProfile").Get&lt;BreederProfile&gt;()</c>);
/// eine Settings-UI/Entity folgt in Phase B. Die Vorlage selbst enthält KEINE
/// echten Daten (nur {{Platzhalter}}) — Werte kommen ausschließlich von hier.
/// </summary>
public sealed class BreederProfile
{
/// <summary>Name der Zucht, z. B. „Zucht der Kleinen Chaoten“.</summary>
public string ZuchtName { get; set; } = "";
/// <summary>Vor- und Nachname inkl. Anrede, z. B. „Frau Erika Muster“.</summary>
public string Name { get; set; } = "";
/// <summary>Anschrift einzeilig: „Straße Nr, PLZ Ort“.</summary>
public string Address { get; set; } = "";
public string Phone { get; set; } = "";
public string Email { get; set; } = "";
public string Homepage { get; set; } = "";
/// <summary>Ort für die Unterschriftszeile („{Ort}, den {Datum}“).</summary>
public string City { get; set; } = "";
}