feat(ausstellungen): Ausstellungs-/Auszeichnungsergebnisse je Tier
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
44
GerbilManagerWebAPI/Models/ExhibitionResult.cs
Normal file
44
GerbilManagerWebAPI/Models/ExhibitionResult.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace GerbilManagerWebAPI.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// EXHIBITION: a show/exhibition result or award for an animal (RennmausPro `ausz_tb` +
|
||||
/// `_AUSZ` flag — present in RPRO3 but unused by this breeder; implemented fully anyway).
|
||||
///
|
||||
/// Deliberately decoupled from the rest of the model, exactly like <see cref="Feedback"/>:
|
||||
/// GerbilId is a plain nullable Guid column (NOT an enforced foreign key, no navigation
|
||||
/// property), so the import re-ingest wipe (IngestResolvedService) can delete/recreate
|
||||
/// gerbils without deleting or breaking exhibition rows. Captured EntityName keeps the
|
||||
/// record human-readable even after the referenced animal is gone.
|
||||
/// </summary>
|
||||
public class ExhibitionResult
|
||||
{
|
||||
[Key]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>Loose reference (no FK) to the gerbil this result belongs to, if any.</summary>
|
||||
public Guid? GerbilId { get; set; }
|
||||
|
||||
/// <summary>Captured name of the referenced animal (survives an ingest wipe).</summary>
|
||||
public string? EntityName { get; set; }
|
||||
|
||||
/// <summary>Name of the show/event (Veranstaltung), e.g. "Nationale Rennmausschau 2026".</summary>
|
||||
public required string EventName { get; set; }
|
||||
|
||||
/// <summary>Date of the event, if known.</summary>
|
||||
public DateTime? Date { get; set; }
|
||||
|
||||
/// <summary>Placement / ranking, e.g. "1. Platz", "BOB".</summary>
|
||||
public string? Placement { get; set; }
|
||||
|
||||
/// <summary>Award / title (Auszeichnung), e.g. "Best in Show", "V1".</summary>
|
||||
public string? Award { get; set; }
|
||||
|
||||
/// <summary>Free-text note (Bewertung / Bemerkung).</summary>
|
||||
public string? Note { get; set; }
|
||||
|
||||
/// <summary>Server-side creation time.</summary>
|
||||
public DateTimeOffset CreatedAt { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user