using System.Collections.Generic;
using System.Runtime.Serialization;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
///
/// Defines a Macro
///
internal interface IMacro : IAggregateRoot
{
///
/// Gets or sets the alias of the Macro
///
[DataMember]
string Alias { get; set; }
///
/// Gets or sets the name of the Macro
///
[DataMember]
string Name { get; set; }
///
/// Gets or sets a boolean indicating whether the Macro can be used in an Editor
///
[DataMember]
bool UseInEditor { get; set; }
///
/// Gets or sets the Cache Duration for the Macro
///
[DataMember]
int CacheDuration { get; set; }
///
/// Gets or sets a boolean indicating whether the Macro should be Cached by Page
///
[DataMember]
bool CacheByPage { get; set; }
///
/// Gets or sets a boolean indicating whether the Macro should be Cached Personally
///
[DataMember]
bool CacheByMember { get; set; }
///
/// Gets or sets a boolean indicating whether the Macro should be rendered in an Editor
///
[DataMember]
bool DontRender { get; set; }
///
/// Gets or sets the path to the script file in use
///
/// Optional: Can only be one of three Script, Python or Xslt
[DataMember]
string ScriptFile { get; set; }
///
/// Gets or sets the name of the assembly, which should be used by the Macro
///
/// Will usually only be filled if the ScriptFile is a Usercontrol
[DataMember]
string ScriptAssembly { get; set; }
///
/// Gets or set the path to the Python file in use
///
/// Optional: Can only be one of three Script, Python or Xslt
[DataMember]
string Python { get; set; }
///
/// Gets or sets the path to the Xslt file in use
///
/// Optional: Can only be one of three Script, Python or Xslt
[DataMember]
string Xslt { get; set; }
///
/// Gets or sets a list of Macro Properties
///
[DataMember]
List Properties { get; set; }
///
/// Returns an enum based on the properties on the Macro
///
///
MacroTypes MacroType();
}
}