namespace SwBLL.Provisioning;
///
/// Backup/data/log file paths for SQL Server database creation, bound from appsettings
/// "SqlWorkbench:Provisioning:SqlServer". Deliberately NOT the legacy
/// CommonFunctionFrameDAL.ReadValueFromCommonConfig key/value table — this module follows the
/// same Vault/appsettings Options convention as every other GB5 module.
///
public class SqlServerProvisioningOptions
{
public const string SectionName = "SqlWorkbench:Provisioning:SqlServer";
/// Directory on the target SQL Server instance where template .bak files live.
/// TemplateBackupRef is always just a filename resolved under this path — never a
/// caller-supplied path, to rule out path traversal.
public string BackupSourcePath { get; set; } = string.Empty;
/// Directory on the target SQL Server instance where new .mdf data files are placed.
public string DataFileDestinationPath { get; set; } = string.Empty;
/// Directory on the target SQL Server instance where new .ldf log files are placed.
public string LogFileDestinationPath { get; set; } = string.Empty;
/// Fixed-size data file autogrowth increment, in MB — percentage-based growth is
/// deliberately avoided (produces increasingly large, slower growth events over time).
public int DataFileAutogrowthMB { get; set; } = 256;
/// Fixed-size log file autogrowth increment, in MB.
public int LogFileAutogrowthMB { get; set; } = 128;
/// Command timeout (seconds) for RESTORE DATABASE / CREATE DATABASE, which can run
/// long against a large template.
public int ProvisioningCommandTimeoutSeconds { get; set; } = 300;
}