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; }
}
}