namespace GerbilManagerWebAPI.Dtos
{
    /// <summary>
    /// REFS: ein einzelner aufzulösender Kurz-Verweis (Shortlink, git-Stil) aus einem
    /// Freitext. <c>Type</c> ist "tier" | "kontakt" | "wurf" | "gehege"; <c>Code</c> ist
    /// ein GUID-Präfix (mind. 6 Hex-Zeichen) ODER die volle GUID — Bindestrich-tolerant.
    /// </summary>
    public record RefRequest(string Type, string Code);

    /// <summary>REFS: Body von POST /refs/resolve.</summary>
    public record ResolveRefsInput(List<RefRequest> Refs);

    /// <summary>
    /// REFS: Auflösungsergebnis. <c>Id</c>/<c>Name</c> sind null, wenn der Code unbekannt
    /// ODER mehrdeutig ist (mehrere Präfix-Treffer) — es wird bewusst nicht geraten.
    /// <c>Type</c>/<c>Code</c> werden gespiegelt, damit der Client zuordnen kann.
    /// </summary>
    public record RefResolution(string Type, string Code, Guid? Id, string? Name);
}
