using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace QuestionsApi.Models; public class Question { [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string? Id { get; set; } public string ExternalId { get; set; } = ""; public string Stem { get; set; } = ""; public string LeadIn { get; set; } = ""; public List Choices { get; set; } = []; public string CorrectChoiceId { get; set; } = ""; public string Explanation { get; set; } = ""; public string KeyTakeaway { get; set; } = ""; public string UsmlePearl { get; set; } = ""; public List ReviewFollowups { get; set; } = []; public Dictionary ChoiceExplanations { get; set; } = []; public Dictionary WrongAnswerFollowups { get; set; } = []; public Dictionary ChoiceSelectionPercentages { get; set; } = []; public string Discipline { get; set; } = ""; public string System { get; set; } = ""; public string Step3System { get; set; } = ""; public string PerformanceCategory { get; set; } = ""; public int Difficulty { get; set; } = 1; public List Labs { get; set; } = []; public List Media { get; set; } = []; public List Tags { get; set; } = []; public List References { get; set; } = []; public bool IsPublished { get; set; } = true; public DateTime? FlaggedForReviewUtc { get; set; } public string FlagReason { get; set; } = ""; public string FlaggedByUserId { get; set; } = ""; public DateTime CreatedUtc { get; set; } = DateTime.UtcNow; public DateTime UpdatedUtc { get; set; } = DateTime.UtcNow; } public class QuestionChoice { public string Id { get; set; } = ""; public string Text { get; set; } = ""; } public class QuestionLab { public string Name { get; set; } = ""; public string Value { get; set; } = ""; public string Unit { get; set; } = ""; public string Reference { get; set; } = ""; } public class WrongAnswerFollowup { public string Prompt { get; set; } = ""; public List Choices { get; set; } = []; public string CorrectChoiceId { get; set; } = ""; public string TeachingPoint { get; set; } = ""; } public class QuestionReviewFollowup { public string Prompt { get; set; } = ""; public List Choices { get; set; } = []; public string CorrectChoiceId { get; set; } = ""; public string TeachingPoint { get; set; } = ""; } public class QuestionReference { public string Title { get; set; } = ""; public string Publisher { get; set; } = ""; public string Url { get; set; } = ""; public string Supports { get; set; } = ""; public string AccessedOn { get; set; } = ""; public string Reviewer { get; set; } = ""; }