namespace QuestionsApi.Models; public class QuestionSearchRequest { public string? System { get; set; } public string? Step3System { get; set; } public string? Discipline { get; set; } public List Tags { get; set; } = []; public int? DifficultyMin { get; set; } public int? DifficultyMax { get; set; } public int Limit { get; set; } = 40; public bool SupportsChoicePools { get; set; } public bool RequireMedia { get; set; } public List ExcludeExternalIds { get; set; } = []; } public class UpsertQuestionRequest { 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 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 class FlagQuestionRequest { public string Reason { get; set; } = ""; } public class FirstQuestionAttemptRequest { public string QuestionExternalId { get; set; } = ""; public string ChoiceId { get; set; } = ""; public List PresentedChoiceIds { get; set; } = []; public int DurationSeconds { get; set; } public bool MetTimeLimit { get; set; } = true; }