feat(transport): carry IsMesReportable / IsMesReportableOverride through bundles (round-trip guard extended)

Claude-Session: https://claude.ai/code/session_01Y5ef34iUUMjmwnMpL9xgmB
This commit is contained in:
Joseph Doherty
2026-09-11 10:00:00 -04:00
parent af10af1573
commit 43973d34de
8 changed files with 178 additions and 7 deletions
@@ -2172,6 +2172,7 @@ public sealed class BundleImporter : IBundleImporter
TriggerConfiguration = al.TriggerConfiguration,
IsLocked = al.IsLocked,
LockedInDerived = al.LockedInDerived,
IsMesReportable = al.IsMesReportable,
});
}
foreach (var s in dto.Scripts)
@@ -2395,6 +2396,7 @@ public sealed class BundleImporter : IBundleImporter
current.TriggerConfiguration = alarmDto.TriggerConfiguration;
current.IsLocked = alarmDto.IsLocked;
current.LockedInDerived = alarmDto.LockedInDerived;
current.IsMesReportable = alarmDto.IsMesReportable;
current.OnTriggerScriptId = null; // re-resolved post-flush.
await _templateRepo.UpdateTemplateAlarmAsync(current, ct).ConfigureAwait(false);
await _auditService.LogAsync(
@@ -2413,6 +2415,7 @@ public sealed class BundleImporter : IBundleImporter
current.TriggerConfiguration,
current.IsLocked,
current.LockedInDerived,
current.IsMesReportable,
OnTriggerScriptName = alarmDto.OnTriggerScriptName,
},
ct).ConfigureAwait(false);
@@ -2427,6 +2430,7 @@ public sealed class BundleImporter : IBundleImporter
TriggerConfiguration = alarmDto.TriggerConfiguration,
IsLocked = alarmDto.IsLocked,
LockedInDerived = alarmDto.LockedInDerived,
IsMesReportable = alarmDto.IsMesReportable,
};
ex.Alarms.Add(newAlarm);
await _auditService.LogAsync(
@@ -2445,6 +2449,7 @@ public sealed class BundleImporter : IBundleImporter
newAlarm.TriggerConfiguration,
newAlarm.IsLocked,
newAlarm.LockedInDerived,
newAlarm.IsMesReportable,
OnTriggerScriptName = alarmDto.OnTriggerScriptName,
},
ct).ConfigureAwait(false);
@@ -4360,6 +4365,7 @@ public sealed class BundleImporter : IBundleImporter
{
TriggerConfigurationOverride = o.TriggerConfigurationOverride,
PriorityLevelOverride = o.PriorityLevelOverride,
IsMesReportableOverride = o.IsMesReportableOverride,
});
}
foreach (var o in dto.NativeAlarmSourceOverrides)
@@ -4913,6 +4919,7 @@ public sealed class BundleImporter : IBundleImporter
// at this single-template-scope validation step the bare name
// IS the canonical name, so just pass it through.
OnTriggerScriptCanonicalName = string.IsNullOrEmpty(al.OnTriggerScriptName) ? null : al.OnTriggerScriptName,
IsMesReportable = al.IsMesReportable,
Source = "Template",
});
}