using System;
namespace Artemis.Core.Modules;
///
/// Represents an attribute that describes a data model property
///
[AttributeUsage(AttributeTargets.Property)]
public class DataModelPropertyAttribute : Attribute
{
///
/// Gets or sets the user-friendly name for this property, shown in the UI.
///
public string? Name { get; set; }
///
/// Gets or sets the user-friendly description for this property, shown in the UI.
///
public string? Description { get; set; }
///
/// Gets or sets the an optional prefix to show before displaying elements in the UI.
///
public string? Prefix { get; set; }
///
/// Gets or sets an optional affix to show behind displaying elements in the UI.
///
public string? Affix { get; set; }
///
/// Gets or sets the name of list items, only applicable to enumerable data model properties
///
public string? ListItemName { get; set; }
///
/// Gets or sets an optional maximum value, this value is not enforced but used for percentage calculations.
///
public object? MaxValue { get; set; }
///
/// Gets or sets an optional minimum value, this value is not enforced but used for percentage calculations.
///
public object? MinValue { get; set; }
///
/// Gets or sets whether this property resets the max depth of the data model, defaults to true
///
public bool ResetsDepth { get; set; } = true;
}