///
/// Site-level configuration controlling workflow routing per batch type.
/// ClinicalApprovalRequired maps BatchType DB strings to whether a clinical
/// approver must sign off after verification before the batch can be approved.
///
public class SiteConfigOptions
{
public const string Section = "SiteConfig";
///
/// Maps batch type DB string (e.g. "LAB_RESULTS") to whether clinical
/// approval is required after verification. If a batch type is not listed,
/// clinical approval is NOT required (defaults to false).
///
public Dictionary ClinicalApprovalRequired { get; set; } = new();
///
/// Returns true if the given batch type requires clinical approval after
/// verification. Batch types not present in the dictionary default to false.
///
public bool RequiresClinicalApproval(BatchType batchType)
{
var key = batchType.ToDbString();
return ClinicalApprovalRequired.TryGetValue(key, out var required) && required;
}
}