Files
caliverse_server/UGQDatabase/Models/QuestContentEntity.cs
2025-05-01 07:20:41 +09:00

83 lines
2.2 KiB
C#

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<string>? Tags { get; set; }
public List<string> Langs { get; set; } = new List<string>();
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<TaskEntity> Tasks { get; set; } = new List<TaskEntity>();
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;
}