// Copyright (c) Umbraco.
// See LICENSE for more details.
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Configuration.Models
{
///
/// Typed configuration options for models builder settings.
///
public class ModelsBuilderSettings
{
private bool _flagOutOfDateModels;
private static string DefaultModelsDirectory => "~/umbraco/models";
///
/// Gets or sets a value for the models mode.
///
public ModelsMode ModelsMode { get; set; } = ModelsMode.PureLive;
///
/// Gets or sets a value for models namespace.
///
/// That value could be overriden by other (attribute in user's code...). Return default if no value was supplied.
public string ModelsNamespace { get; set; }
///
/// Gets or sets a value indicating whether we should flag out-of-date models.
///
///
/// Models become out-of-date when data types or content types are updated. When this
/// setting is activated the ~/App_Data/Models/ood.txt file is then created. When models are
/// generated through the dashboard, the files is cleared. Default value is false.
///
public bool FlagOutOfDateModels
{
get => _flagOutOfDateModels;
set
{
if (!ModelsMode.IsLive())
{
_flagOutOfDateModels = false;
}
_flagOutOfDateModels = value;
}
}
///
/// Gets or sets a value for the models directory.
///
/// Default is ~/App_Data/Models but that can be changed.
public string ModelsDirectory { get; set; } = DefaultModelsDirectory;
///
/// Gets or sets a value indicating whether to accept an unsafe value for ModelsDirectory.
///
///
/// An unsafe value is an absolute path, or a relative path pointing outside
/// of the website root.
///
public bool AcceptUnsafeModelsDirectory { get; set; } = false;
///
/// Gets or sets a value indicating the debug log level.
///
/// 0 means minimal (safe on live site), anything else means more and more details (maybe not safe).
public int DebugLevel { get; set; } = 0;
}
}