using BigRegister.Domain.Diplomas;
using BigRegister.Domain.People;
using BigRegister.Domain.Registrations;

namespace BigRegister.Api.Data;

/// <summary>
/// In-memory seeded synthetic data — no DB, no real BRP/DUO. Stands in for the
/// upstream systems so the API behaves like production for a demo.
/// </summary>
public static class SeedData
{
    public static readonly Registration Registration = new(
        BigNummer: "19012345601",
        Naam: "Dr. A. (Anna) de Vries",
        Beroep: "Arts",
        Registratiedatum: new DateOnly(2012, 9, 1),
        Geboortedatum: new DateOnly(1985, 3, 14),
        Status: new RegistrationStatus(StatusTag.Geregistreerd, HerregistratieDatum: new DateOnly(2027, 3, 1)));

    public static readonly Person Person = new(
        Naam: "Dr. A. (Anna) de Vries",
        Geboortedatum: new DateOnly(1985, 3, 14),
        Adres: new Adres("Lange Voorhout 9", "2514 EA", "Den Haag"));

    /// <summary>The address BRP returns for the seeded citizen.</summary>
    public static readonly Adres BrpAddress = Person.Adres;

    public static readonly IReadOnlyList<Diploma> Diplomas = new[]
    {
        new Diploma("d1", "Geneeskunde", "Universiteit Leiden", 2011, "geneeskunde", Engelstalig: false),
        new Diploma("d2", "Medicine (MBChB)", "University of Edinburgh", 2013, "geneeskunde", Engelstalig: true),
        new Diploma("d3", "HBO-Verpleegkunde", "Hogeschool Utrecht", 2016, "verpleegkunde", Engelstalig: false),
    };

    public static readonly IReadOnlyList<(string Type, string Omschrijving, string Datum)> Notes = new[]
    {
        ("Specialisme", "Huisartsgeneeskunde", "2016-04-12"),
        ("Aantekening", "Erkend opleider huisartsgeneeskunde", "2019-01-08"),
        ("Specialisme", "Spoedeisende hulp (kaderopleiding)", "2021-06-30"),
    };
}
