using ZB.MOM.WW.ScadaBridge.Commons.Types;
using ZB.MOM.WW.ScadaBridge.Commons.Types.Flattening;
namespace ZB.MOM.WW.ScadaBridge.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.
///
/// Id of the instance to flatten and validate.
/// Cancellation token.
/// A task that resolves to the flattened configuration, revision hash, and validation result; or a failure result if flattening could not complete.
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);