using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace QuestionsApi.Models; public sealed class QuestionBookmark { [BsonId, BsonRepresentation(BsonType.ObjectId)] public string? Id { get; set; } public string UserId { get; set; } = ""; public string QuestionExternalId { get; set; } = ""; public DateTime CreatedUtc { get; set; } = DateTime.UtcNow; public DateTime UpdatedUtc { get; set; } = DateTime.UtcNow; } public sealed class QuestionBookmarkSummary { public string QuestionExternalId { get; set; } = ""; public string Stem { get; set; } = ""; public string LeadIn { get; set; } = ""; public string System { get; set; } = ""; public string Discipline { get; set; } = ""; public int Difficulty { get; set; } public bool HasMedia { get; set; } public List Tags { get; set; } = []; public DateTime CreatedUtc { get; set; } } public sealed class QuestionBookmarkPageResponse { public List Items { get; set; } = []; public string? NextCursor { get; set; } public bool HasMore { get; set; } public List Systems { get; set; } = []; public List Disciplines { get; set; } = []; } public sealed class QuestionBookmarkMutationResponse { public string QuestionExternalId { get; set; } = ""; public bool IsBookmarked { get; set; } }