using System.ComponentModel.DataAnnotations; namespace GerbilManagerWebAPI.Models { /// /// 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 : /// 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. /// public class ExhibitionResult { [Key] public Guid Id { get; set; } /// Loose reference (no FK) to the gerbil this result belongs to, if any. public Guid? GerbilId { get; set; } /// Captured name of the referenced animal (survives an ingest wipe). public string? EntityName { get; set; } /// Name of the show/event (Veranstaltung), e.g. "Nationale Rennmausschau 2026". public required string EventName { get; set; } /// Date of the event, if known. public DateTime? Date { get; set; } /// Placement / ranking, e.g. "1. Platz", "BOB". public string? Placement { get; set; } /// Award / title (Auszeichnung), e.g. "Best in Show", "V1". public string? Award { get; set; } /// Free-text note (Bewertung / Bemerkung). public string? Note { get; set; } /// Server-side creation time. public DateTimeOffset CreatedAt { get; set; } } }