using ScadaLink.Commons.Types;
using ScadaLink.Commons.Types.Flattening;
namespace ScadaLink.DeploymentManager;
///
/// Abstraction over the TemplateEngine flattening + validation + hashing pipeline.
/// Used by DeploymentService to obtain a validated, hashed FlattenedConfiguration.
///
public interface IFlatteningPipeline
{
///
/// Flattens and validates an instance configuration, returning the configuration,
/// revision hash, and validation result.
///
Task> FlattenAndValidateAsync(
int instanceId,
CancellationToken cancellationToken = default);
}
///
/// Result of the flattening pipeline: configuration, hash, and validation.
///
public record FlatteningPipelineResult(
FlattenedConfiguration Configuration,
string RevisionHash,
ValidationResult Validation);