using System.ComponentModel.DataAnnotations;
namespace GerbilManagerWebAPI.Models
{
///
/// A person/cattery a gerbil came from (Herkunft) or was given to (Abnehmer).
/// Was "Breeder"; the role is relational (see Gerbil.OriginContactId / ReceiverContactId).
///
public class Contact
{
[Key]
public Guid Id { get; set; }
public required string Name { get; set; }
public string? Email { get; set; }
public string? Phone { get; set; }
public string? Address { get; set; }
public string? Notes { get; set; }
public bool IsBreeder { get; set; }
public bool IsReceiver { get; set; }
///
/// Namens-Anhängsel dieser Zucht (wie ein „Nachname"), z. B.
/// „von den Wüstenwinden“. Für Tiere fremder Züchter pflegbar.
///
public string? NameSuffix { get; set; }
/// Data-provenance / traceability for the import: a JSON object describing
/// WHICH source information produced this contact (sourceFiles, mergedRecordCount,
/// notes). Written by the Python merge_and_resolve step and surfaced read-only
/// ("Datenherkunft"). Null = manually-added contact / no import data.
public string? Provenance { get; set; }
/// true = manually created in the UI; false = produced by an import path. The ingest
/// re-import wipe deletes ONLY IsManual=false contacts, so a manually-added contact (e.g. the
/// Herkunft/Abnehmer of a manual animal) is never wiped. All import paths leave this false.
public bool IsManual { get; set; }
}
}