Files
mixtape/zero.Core/Entities/Preset.cs
T

61 lines
1.2 KiB
C#
Raw Normal View History

2020-12-17 15:38:15 +01:00
using System;
using zero.Core.Attributes;
2020-12-16 15:50:44 +01:00
namespace zero.Core.Entities
{
2020-12-17 15:38:15 +01:00
public abstract class Preset : IPreset
{
/// <inheritdoc />
public string Key { get; set; }
/// <inheritdoc />
public string Name { get; set; }
}
2020-12-16 15:50:44 +01:00
public interface IPreset
{
2020-12-17 15:38:15 +01:00
/// <summary>
/// Key is used to query a preset
/// </summary>
string Key { get; set; }
/// <summary>
/// Name of the preset
/// </summary>
string Name { get; set; }
2020-12-16 15:50:44 +01:00
}
2020-12-17 15:38:15 +01:00
public class PresetOverride<T> : ZeroEntity, IPresetOverride<T> where T : IPreset
2020-12-16 15:50:44 +01:00
{
2020-12-17 15:38:15 +01:00
/// <inheritdoc />
public string Key { get; set; }
/// <inheritdoc />
public Type TargetType { get; set; }
2020-12-16 15:50:44 +01:00
/// <inheritdoc />
public T Model { get; set; }
}
[Collection("Presets")]
2020-12-17 15:38:15 +01:00
public interface IPresetOverride<T> : IZeroEntity, IZeroDbConventions where T : IPreset
2020-12-16 15:50:44 +01:00
{
2020-12-17 15:38:15 +01:00
/// <summary>
/// Key is used to query a preset
/// </summary>
string Key { get; set; }
/// <summary>
/// Type of the target model (used to query)
/// </summary>
Type TargetType { get; set; }
2020-12-16 15:50:44 +01:00
/// <summary>
/// Overridden data
/// </summary>
T Model { get; set; }
}
}