Implementation
List<String> get issueMessages {
final messages = <String>[];
void addIssue(String message) {
final normalized = message.trim();
if (normalized.isEmpty || messages.contains(normalized)) return;
messages.add(normalized);
}
for (final warning in warnings) {
addIssue(warning);
}
final cancelReason = cancellationReason;
if (cancelReason != null) {
addIssue(cancelReason);
}
for (final result in exportBatch.failed) {
addIssue(
'Export failed for ${result.filename}: '
'${result.error ?? 'Unknown export error.'}',
);
}
for (final skipped in exportBatch.skippedUnavailable) {
addIssue(
'${skipped.format.name} export skipped: '
'${skipped.disabledReason ?? 'Format is unavailable.'}',
);
}
if (exportBatch.notRunCount > 0) {
addIssue(
'${exportBatch.notRunCount} '
'${_plural('export', exportBatch.notRunCount)} not run.',
);
}
final delivery = exportDelivery;
if (delivery != null) {
for (final result in delivery.failed) {
addIssue(
'Delivery failed for ${result.filename ?? 'export file'}: '
'${result.errorText ?? 'Unknown delivery error.'}',
);
}
}
final archiveResult = archiveDelivery;
if (archiveResult != null && !archiveResult.success) {
addIssue(
'Archive delivery failed: '
'${archiveResult.errorText ?? 'Unknown delivery error.'}',
);
}
return List.unmodifiable(messages);
}