using System; using zero.Core.Attributes; namespace zero.Core.Entities { public abstract class Preset : IPreset { /// public string Key { get; set; } /// public string Name { get; set; } } public interface IPreset { /// /// Key is used to query a preset /// string Key { get; set; } /// /// Name of the preset /// string Name { get; set; } } public class PresetOverride : ZeroEntity, IPresetOverride where T : IPreset { /// public string Key { get; set; } /// public Type TargetType { get; set; } /// public T Model { get; set; } } [Collection("Presets")] public interface IPresetOverride : IZeroEntity, IZeroDbConventions where T : IPreset { /// /// Key is used to query a preset /// string Key { get; set; } /// /// Type of the target model (used to query) /// Type TargetType { get; set; } /// /// Overridden data /// T Model { get; set; } } }