// Copyright (c) Umbraco.
// See LICENSE for more details.
using System.ComponentModel;
namespace Umbraco.Cms.Core.Configuration.Models;
///
/// Typed configuration options for NuCache settings.
///
[UmbracoOptions(Constants.Configuration.ConfigNuCache)]
public class NuCacheSettings
{
internal const string StaticNuCacheSerializerType = "MessagePack";
internal const int StaticSqlPageSize = 1000;
internal const int StaticKitBatchSize = 1;
internal const bool StaticUsePagedSqlQuery = true;
///
/// Gets or sets a value defining the BTree block size.
///
public int? BTreeBlockSize { get; set; }
///
/// The serializer type that nucache uses to persist documents in the database.
///
[DefaultValue(StaticNuCacheSerializerType)]
public NuCacheSerializerType NuCacheSerializerType { get; set; } = Enum.Parse(StaticNuCacheSerializerType);
///
/// The paging size to use for nucache SQL queries.
///
[DefaultValue(StaticSqlPageSize)]
public int SqlPageSize { get; set; } = StaticSqlPageSize;
///
/// The size to use for nucache Kit batches. Higher value means more content loaded into memory at a time.
///
[DefaultValue(StaticKitBatchSize)]
public int KitBatchSize { get; set; } = StaticKitBatchSize;
public bool UnPublishedContentCompression { get; set; } = false;
[DefaultValue(StaticUsePagedSqlQuery)]
public bool UsePagedSqlQuery { get; set; } = true;
}