42 lines
1.4 KiB
C#
42 lines
1.4 KiB
C#
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<string> Tags { get; set; } = [];
|
|
public DateTime CreatedUtc { get; set; }
|
|
}
|
|
|
|
public sealed class QuestionBookmarkPageResponse
|
|
{
|
|
public List<QuestionBookmarkSummary> Items { get; set; } = [];
|
|
public string? NextCursor { get; set; }
|
|
public bool HasMore { get; set; }
|
|
public List<string> Systems { get; set; } = [];
|
|
public List<string> Disciplines { get; set; } = [];
|
|
}
|
|
|
|
public sealed class QuestionBookmarkMutationResponse
|
|
{
|
|
public string QuestionExternalId { get; set; } = "";
|
|
public bool IsBookmarked { get; set; }
|
|
}
|