FEAT-14a: Charakterbogen on Gerbil (traits + note) + sale-ad request extension
- Gerbil.CharacterTraits (List<string>, JSON text column, opaque labels) + CharacterNote (string?). On GerbilDto + Input; round-trips on GET/POST/PUT. Additive migration. - SaleAdAnimal gains Traits (German labels) + CharacterNote; prompt builder emits "Charakter: …" + "Charakter-Notiz: …" lines for the AI Verkaufstext. - Tests: traits/note round-trip (POST->GET via SQLite host), empty-default, prompt inclusion.
This commit is contained in:
@@ -9,7 +9,11 @@ namespace GerbilManagerWebAPI.SaleAd
|
||||
string? Farbschlag,
|
||||
/// <summary>ISO "YYYY-MM-DD" (frontend sends the DTO string verbatim).</summary>
|
||||
string? DateOfBirth,
|
||||
string? Notes);
|
||||
string? Notes,
|
||||
/// <summary>FEAT-14: Charakterbogen trait LABELS (German, human-readable) for the prompt.</summary>
|
||||
List<string>? Traits = null,
|
||||
/// <summary>FEAT-14: free-text character note for the prompt.</summary>
|
||||
string? CharacterNote = null);
|
||||
|
||||
public sealed record SaleAdRequest(
|
||||
List<SaleAdAnimal> Animals,
|
||||
|
||||
@@ -87,6 +87,10 @@ namespace GerbilManagerWebAPI.SaleAd
|
||||
sb.Append($" | geboren am {FormatGermanDate(animal.DateOfBirth)}");
|
||||
if (!string.IsNullOrWhiteSpace(animal.Notes))
|
||||
sb.Append($" | Notizen: {animal.Notes}");
|
||||
if (animal.Traits is { Count: > 0 })
|
||||
sb.Append($" | Charakter: {string.Join(", ", animal.Traits)}");
|
||||
if (!string.IsNullOrWhiteSpace(animal.CharacterNote))
|
||||
sb.Append($" | Charakter-Notiz: {animal.CharacterNote}");
|
||||
sb.AppendLine();
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(request.Hints))
|
||||
|
||||
Reference in New Issue
Block a user