using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace UGQDatabase.Models; public enum QuestContentState { None = 0, Uncomplate = 1, Editable = 2, Test = 3, Standby = 4, Live = 5, Shutdown = 6, } public class TaskEntity { public TextEntity GoalText { get; set; } = new TextEntity(); public int ActionId { get; set; } public int ActionValue { get; set; } public bool IsShowNpcLocation { get; set; } public string? UgcActionValueGuid { get; set; } public string? UgcActionValueName { get; set; } public string? DialogId { get; set; } } public class QuestContentEntity { [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string Id { get; set; } = null!; public string UserGuid { get; set; } = null!; public string Author { get; set; } = null!; [BsonRepresentation(BsonType.String)] public UgqGradeType GradeType { get; set; } = UgqGradeType.Amature; public long QuestId { get; set; } public long Revision { get; set; } public int BeaconId { get; set; } public string? UgcBeaconGuid { get; set; } public string? UgcBeaconNickname { get; set; } public TextEntity Title { get; set; } = new TextEntity(); public List? Tags { get; set; } public List Langs { get; set; } = new List(); public int UploadCounter { get; set; } public string TitleImagePath { get; set; } = string.Empty; public string BannerImagePath { get; set; } = string.Empty; public TextEntity Description { get; set; } = new TextEntity(); [BsonRepresentation(BsonType.String)] public QuestContentState State { get; set; } public bool? ToNextRevision { get; set; } = false; public int Cost { get; set; } public string Savelanguage { get; set; } = string.Empty; public List Tasks { get; set; } = new List(); public int? ContentVersion { get; set; } [BsonRequired] public DateTime CreatedAt { get; set; } [BsonRequired] public DateTime UpdatedAt { get; set; } public bool IsDeleted { get; set; } = false; public DateTime DeletedAt { get; set; } = DateTime.MinValue; }