Files
OrpaonVision/OrpaonVision.ConfigApp/Infrastructure/Options/SessionPersistenceOptions.cs
2026-04-06 22:04:05 +08:00

118 lines
3.0 KiB
C#

namespace OrpaonVision.ConfigApp.Infrastructure.Options;
/// <summary>
/// 会话持久化选项。
/// </summary>
public sealed class SessionPersistenceOptions
{
/// <summary>
/// 是否启用会话持久化。
/// </summary>
public bool EnablePersistence { get; set; } = true;
/// <summary>
/// 会话数据保留天数。
/// </summary>
public int RetentionDays { get; set; } = 30;
/// <summary>
/// 是否启用自动清理。
/// </summary>
public bool EnableAutoCleanup { get; set; } = true;
/// <summary>
/// 自动清理执行时间(小时)。
/// </summary>
public int AutoCleanupHour { get; set; } = 2; // 凌晨2点执行
/// <summary>
/// 批量操作大小。
/// </summary>
public int BatchSize { get; set; } = 1000;
/// <summary>
/// 会话事件保留天数。
/// </summary>
public int EventRetentionDays { get; set; } = 7;
/// <summary>
/// 是否启用会话压缩。
/// </summary>
public bool EnableCompression { get; set; } = true;
/// <summary>
/// 数据库连接字符串。
/// </summary>
public string ConnectionString { get; set; } = string.Empty;
/// <summary>
/// 会话表名。
/// </summary>
public string SessionTableName { get; set; } = "mdl_production_session";
/// <summary>
/// 会话事件表名。
/// </summary>
public string EventTableName { get; set; } = "mdl_production_session_event";
/// <summary>
/// 是否启用异步写入。
/// </summary>
public bool EnableAsyncWrite { get; set; } = true;
/// <summary>
/// 异步写入队列大小。
/// </summary>
public int AsyncWriteQueueSize { get; set; } = 10000;
/// <summary>
/// 异步写入批次大小。
/// </summary>
public int AsyncWriteBatchSize { get; set; } = 100;
/// <summary>
/// 异步写入间隔(毫秒)。
/// </summary>
public int AsyncWriteIntervalMs { get; set; } = 1000;
/// <summary>
/// 是否启用会话缓存。
/// </summary>
public bool EnableCaching { get; set; } = true;
/// <summary>
/// 缓存过期时间(分钟)。
/// </summary>
public int CacheExpirationMinutes { get; set; } = 30;
/// <summary>
/// 最大缓存大小。
/// </summary>
public int MaxCacheSize { get; set; } = 10000;
/// <summary>
/// 是否启用会话备份。
/// </summary>
public bool EnableBackup { get; set; } = true;
/// <summary>
/// 备份保留天数。
/// </summary>
public int BackupRetentionDays { get; set; } = 90;
/// <summary>
/// 备份路径。
/// </summary>
public string BackupPath { get; set; } = "backups/sessions";
/// <summary>
/// 是否启用会话加密。
/// </summary>
public bool EnableEncryption { get; set; } = false;
/// <summary>
/// 加密密钥。
/// </summary>
public string EncryptionKey { get; set; } = string.Empty;
}