buildRecoveryReport function
Assembles a deterministic report whose state cannot overstate recovery.
Implementation
RecoveryReport buildRecoveryReport({
required List<String> restoredPaths,
required List<String> removedCreatedPaths,
required List<String> unresolvedPaths,
required List<String> manualActions,
}) {
final restored = [...restoredPaths]..sort();
final removed = [...removedCreatedPaths]..sort();
final unresolved = [...unresolvedPaths]..sort();
final actions = [...manualActions]..sort();
final state = unresolved.isEmpty
? RecoveryState.rolledBack
: removed.isNotEmpty || restored.isNotEmpty
? RecoveryState.partiallyRecovered
: RecoveryState.manualRecoveryRequired;
return RecoveryReport(
state: state,
restoredPaths: restored,
removedCreatedPaths: removed,
unresolvedPaths: unresolved,
manualActions: actions,
);
}