63ec226582
Claude-Session: https://claude.ai/code/session_01Y5ef34iUUMjmwnMpL9xgmB
66 lines
5.3 KiB
C#
66 lines
5.3 KiB
C#
namespace ZB.MOM.WW.ScadaBridge.Commons.Messages.Management;
|
|
|
|
// Skip/Take are additive offset paging (arch-review P2). Take = null preserves the
|
|
// historical unpaged behaviour (unlimited), so existing callers/UI are untouched.
|
|
public record ListTemplatesCommand(int Skip = 0, int? Take = null);
|
|
public record GetTemplateCommand(int TemplateId);
|
|
public record CreateTemplateCommand(string Name, string? Description, int? ParentTemplateId);
|
|
|
|
/// <summary>
|
|
/// Updates a template. Optional fields use leave-unchanged semantics:
|
|
/// a <c>null</c> <see cref="Description"/> keeps the stored description (pass an empty
|
|
/// string to clear it), and a <c>null</c> <see cref="ParentTemplateId"/> keeps the
|
|
/// existing parent (the parent is immutable; a non-null value that differs is rejected).
|
|
/// </summary>
|
|
public record UpdateTemplateCommand(int TemplateId, string Name, string? Description, int? ParentTemplateId);
|
|
public record DeleteTemplateCommand(int TemplateId);
|
|
public record ValidateTemplateCommand(int TemplateId);
|
|
|
|
/// <summary>
|
|
/// Read-only authoring query: returns the EFFECTIVE inherited member
|
|
/// set for a template — computed fresh from the full inheritance chain
|
|
/// (arbitrary depth), annotated per member with origin + lock state — plus a
|
|
/// staleness summary comparing the template's stored rows against the resolved
|
|
/// set. Feeds the template editor's inheritance preview + base-change banner;
|
|
/// never mutates stored rows. Response: <see cref="ResolvedTemplateMembers"/>.
|
|
/// </summary>
|
|
public record GetResolvedTemplateMembersCommand(int TemplateId);
|
|
|
|
/// <summary>
|
|
/// Reconciles a template's STORED inherited member rows with the resolved
|
|
/// effective inherited set, for the template and its whole derived subtree:
|
|
/// materializes missing inherited placeholders (e.g. base members added after a
|
|
/// derived template was created), re-syncs drifted placeholders to the live
|
|
/// effective value, and removes orphaned inherited rows. After a resync the
|
|
/// editor's editable member tabs are complete and the "base changed" staleness
|
|
/// banner clears. Designer-gated, audited. Response:
|
|
/// <see cref="ResyncInheritedMembersResult"/>.
|
|
/// </summary>
|
|
public record ResyncInheritedMembersCommand(int TemplateId);
|
|
|
|
// Template member operations
|
|
public record AddTemplateAttributeCommand(int TemplateId, string Name, string DataType, string? Value, string? Description, string? DataSourceReference, bool IsLocked, string? ElementDataType = null);
|
|
public record UpdateTemplateAttributeCommand(int AttributeId, string Name, string DataType, string? Value, string? Description, string? DataSourceReference, bool IsLocked, string? ElementDataType = null);
|
|
public record DeleteTemplateAttributeCommand(int AttributeId);
|
|
// IsMesReportable is an additive trailing optional (default false = "not reported to MES"):
|
|
// it mirrors TemplateAlarm.IsMesReportable and marks the alarm for inclusion in the MES
|
|
// alarm-status feed. Additive-only: never reorder the existing parameters.
|
|
public record AddTemplateAlarmCommand(int TemplateId, string Name, string TriggerType, int PriorityLevel, string? Description, string? TriggerConfiguration, bool IsLocked, bool IsMesReportable = false);
|
|
public record UpdateTemplateAlarmCommand(int AlarmId, string Name, string TriggerType, int PriorityLevel, string? Description, string? TriggerConfiguration, bool IsLocked, bool IsMesReportable = false);
|
|
public record DeleteTemplateAlarmCommand(int AlarmId);
|
|
// Native alarm source bindings (read-only mirror of an OPC UA A&C / MxGateway source's alarms)
|
|
public record AddTemplateNativeAlarmSourceCommand(int TemplateId, string Name, string ConnectionName, string SourceReference, string? ConditionFilter, string? Description, bool IsLocked);
|
|
public record UpdateTemplateNativeAlarmSourceCommand(int NativeAlarmSourceId, string Name, string ConnectionName, string SourceReference, string? ConditionFilter, string? Description, bool IsLocked);
|
|
public record DeleteTemplateNativeAlarmSourceCommand(int NativeAlarmSourceId);
|
|
public record ListTemplateNativeAlarmSourcesCommand(int TemplateId);
|
|
// MinTimeBetweenRuns/ExecutionTimeoutSeconds are additive trailing optionals (default null = "unset"):
|
|
// MinTimeBetweenRuns mirrors the TemplateScript.MinTimeBetweenRuns TimeSpan throttle/re-fire interval;
|
|
// ExecutionTimeoutSeconds mirrors the per-script TemplateScript.ExecutionTimeoutSeconds override (seconds;
|
|
// null/non-positive falls back to the site's global default). Both were previously settable only via
|
|
// Transport bundle import — these fields close the CLI/UI authoring gap. Additive-only: never reorder.
|
|
public record AddTemplateScriptCommand(int TemplateId, string Name, string Code, string? TriggerType, string? TriggerConfiguration, bool IsLocked, string? ParameterDefinitions = null, string? ReturnDefinition = null, TimeSpan? MinTimeBetweenRuns = null, int? ExecutionTimeoutSeconds = null);
|
|
public record UpdateTemplateScriptCommand(int ScriptId, string Name, string Code, string? TriggerType, string? TriggerConfiguration, bool IsLocked, string? ParameterDefinitions = null, string? ReturnDefinition = null, TimeSpan? MinTimeBetweenRuns = null, int? ExecutionTimeoutSeconds = null);
|
|
public record DeleteTemplateScriptCommand(int ScriptId);
|
|
public record AddTemplateCompositionCommand(int TemplateId, string InstanceName, int ComposedTemplateId);
|
|
public record DeleteTemplateCompositionCommand(int CompositionId);
|