using System.Runtime.Serialization;
namespace Umbraco.Cms.Core.Models.ContentEditing;
///
/// Represents a content app.
///
///
/// Content apps are editor extensions.
///
[DataContract(Name = "app", Namespace = "")]
public class ContentApp
{
///
/// Gets the name of the content app.
///
[DataMember(Name = "name")]
public string? Name { get; set; }
///
/// Gets the unique alias of the content app.
///
///
/// Must be a valid javascript identifier, ie no spaces etc.
///
[DataMember(Name = "alias")]
public string? Alias { get; set; }
///
/// Gets or sets the weight of the content app.
///
///
/// Content apps are ordered by weight, from left (lowest values) to right (highest values).
/// Some built-in apps have special weights: listview is -666, content is -100 and infos is +100.
///
/// The default weight is 0, meaning somewhere in-between content and infos, but weight could
/// be used for ordering between user-level apps, or anything really.
///
///
[DataMember(Name = "weight")]
public int Weight { get; set; }
///
/// Gets the icon of the content app.
///
///
/// Must be a valid helveticons class name (see http://hlvticons.ch/).
///
[DataMember(Name = "icon")]
public string? Icon { get; set; }
///
/// Gets the view for rendering the content app.
///
[DataMember(Name = "view")]
public string? View { get; set; }
///
/// The view model specific to this app
///
[DataMember(Name = "viewModel")]
public object? ViewModel { get; set; }
///
/// Gets a value indicating whether the app is active.
///
///
/// Normally reserved for Angular to deal with but in some cases this can be set on the server side.
///
[DataMember(Name = "active")]
public bool Active { get; set; }
///
/// Gets or sets the content app badge.
///
[DataMember(Name = "badge")]
public ContentAppBadge? Badge { get; set; }
}