using System.Text.Json;

namespace VigilCare.Simulation;

public record ScenarioFile(
    ScenarioMeta Scenario,
    ScenarioPatient Patient,
    ScenarioEncounter Encounter,
    List<ScenarioEvent> Events,
    List<ExpectedOutcome>? ExpectedOutcomes);

public record ScenarioMeta(
    string Id, string Name, string? Description,
    int? DurationMinutes, List<string>? Tags);

public record ScenarioPatient(
    string FirstName, string LastName, string DateOfBirth,
    string Gender);

public record ScenarioEncounter(
    string Department, string EncounterType, string AttendingPhysician,
    string? RoomBed, string? AdmissionReason);

public record ScenarioEvent(
    double OffsetMinutes, string Type, JsonElement Data, string? Note);

public record ExpectedOutcome(
    double AfterOffsetMinutes, string Type,
    string? AlertType, string? ScoreType,
    double? ExpectedMinimum, string? Description,
    string? NarrativeContains = null);
