using System; using System.Data; using System.IO; using System.Text; using System.Text.Json; using System.Xml.Serialization; using ChaosBot.Attribute; namespace ChaosBot.Database.Entity { [DBEntity("ServerConfigurationFlags")] public class ServerConfigurationFlag : BaseEntity { public string key { get; private set; } public string serializedValue { get; set; } public long guildId { get; private set; } public ServerConfigurationFlag() {} public ServerConfigurationFlag(string key, T value, ulong guildId) { this.serializedValue = Serialize(value); this.key = key; this.guildId = Convert.ToInt64(guildId); } public ServerConfigurationFlag(string key, T value, long guildId) { this.serializedValue = Serialize(value); this.key = key; this.guildId = guildId; } public ServerConfigurationFlag(string key, long guildId) { this.key = key; this.guildId = guildId; } public static QueryBuilder> Query() { return BaseEntity.Query>(); } public override void SetFromRow(DataRow row) { key = (string)row["key"]; serializedValue = (string)row["serializedValue"]; guildId = (long)row["guildId"]; } public T GetValue() { return Deserialize(serializedValue); } public static string Serialize(T value) { return JsonSerializer.Serialize(value); } public static T Deserialize(string serializedValue) { return JsonSerializer.Deserialize(serializedValue); } } }