using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson; namespace UGQDatabase.Models; public class GameQuestDialogDataEntity { public string Id { get; set; } = null!; public List Sequences { get; set; } = new(); } public class GameQuestDataEntity { [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string Id { get; set; } = null!; public long QuestId { get; set; } public long Revision { get; set; } public string UserGuid { get; set; } = null!; public string Author { get; set; } = null!; public int BeaconId { get; set; } public string? UgcBeaconGuid { get; set; } public string? UgcBeaconNickname { get; set; } public TextEntity Title { get; set; } = new TextEntity(); public List Langs { get; set; } = new List(); 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 UgqGradeType GradeType { get; set; } = UgqGradeType.Amature; [BsonRepresentation(BsonType.String)] public QuestContentState State { get; set; } public int Cost { get; set; } public bool Shutdown { get; set; } public List Tasks { get; set; } = new (); public List Dialogs { get; set; } = new(); public List QuestScriptMetas { get; set; } = new(); //클라에게 바로 전달 해주기 위해 Tasks를 가공한 Meta 정보 public UgqGameQuestDataForClient UgqGameQuestDataForClient { get; set; } = new(); //클라에게 바로 전달해주기 위해 Dialogs 를 가공한 데이터 public string UgqGameQuestDataForClientString { get; set; } = string.Empty; //클라에게 바로 전달해주기 위해 Dialogs 를 가공한 데이터 문자열 [BsonRequired] public DateTime UpdatedAt { get; set; } [BsonRequired] public DateTime CreatedAt { get; set; } }