using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Runtime.Serialization;
using Umbraco.Core.PropertyEditors;
namespace Umbraco.Web.Models.ContentEditing
{
///
/// Represents a content property to be saved
///
[DataContract(Name = "property", Namespace = "")]
public class ContentPropertyBasic
{
///
/// This is the PropertyData ID
///
///
/// This is not really used for anything
///
[DataMember(Name = "id", IsRequired = true)]
[Required]
public int Id { get; set; }
[DataMember(Name = "dataTypeKey", IsRequired = false)]
[ReadOnly(true)]
public Guid DataTypeKey { get; set; }
[DataMember(Name = "value")]
public object Value { get; set; }
[DataMember(Name = "alias", IsRequired = true)]
[Required(AllowEmptyStrings = false)]
public string Alias { get; set; }
[DataMember(Name = "editor", IsRequired = false)]
public string Editor { get; set; }
///
/// Flags the property to denote that it can contain sensitive data
///
[DataMember(Name = "isSensitive", IsRequired = false)]
public bool IsSensitive { get; set; }
///
/// The culture of the property
///
///
/// If this is a variant property then this culture value will be the same as it's variant culture but if this
/// is an invariant property then this will be a null value.
///
[DataMember(Name = "culture")]
[ReadOnly(true)]
public string Culture { get; set; }
///
/// Used internally during model mapping
///
[IgnoreDataMember]
internal IDataEditor PropertyEditor { get; set; }
}
}