Coflyr · WorkStep model consolidation review
WorkStep
One model and one table containing all mapped WorkStep fields.
Under development · HTML review only. All other WorkStep model/table definitions are marked Dropped and merged here. The current backend has 152 shared-table columns across eleven typed roles; phase/reference tables and C# model consolidation await implementation after complete review.
Model index · Merge scope and adoption
Unified field inventory
Duplicate physical fields appear once. ActionType merges into its existing EntryType column. Role-specific values remain separate rows; shared nullable fields retain required checks for the applicable RecordKind. Types, values, links and source meanings are retained for review.
| Field | Combined type | Storage / role requirements | Purpose | Source fields |
|---|---|---|---|---|
ActionEndDate | DateTime? | Nullable Required for: ResourceAssignment | End/completion timestamp of the activity represented by this WorkStep row. On a FailureConfirmation execution entry, records when the failure was confirmed and is required. Keep that entry separate from the main executable step and resource-allocation rows, preserving their own work/allocation intervals. Also consolidates former ActionDate and EndAt; reconcile differing historical timestamps and signing behavior during deferred adoption. Rename ActionDate to ActionEndDate and merge with the existing ActionEndDate field. Backend/database adoption is pending complete review. Merge EndAt into ActionEndDate for this ResourceAssignment row; preserve the allocation interval, duration and request-window/overlap validation. Backend/database adoption deferred. | WorkStep.ActionEndDate, WorkorderExecutionEntry.ActionEndDate, WorkStep.ActionDate, WorkorderExecutionEntry.ActionDate, WorkpackageOrder.FailureConfirmedAt, WorkStepResourceAssignment.EndAt |
ActionRemarks | String | Nullable Optional | Records action remarks for this work step. Used by: WorkStep, WorkStepMaterialDemand, WorkStepMeasurementDefinition, WorkStepResourceRequest, WorkStepSoftwareChangePlan, WorkorderExecutionEntry. | WorkStep.ActionRemarks, WorkStepMaterialDemand.ActionRemarks, WorkStepMeasurementDefinition.ActionRemarks, WorkStepResourceRequest.ActionRemarks, WorkStepSoftwareChangePlan.ActionRemarks, WorkorderExecutionEntry.ActionRemarks |
ActionSigner | String | Nullable Optional | Records action signer for this work step. Used by: WorkStep, WorkorderExecutionEntry. | WorkStep.ActionSigner, WorkorderExecutionEntry.ActionSigner |
ActionStartDate | DateTime? | Nullable Required for: ResourceAssignment | Start timestamp for the activity represented by this WorkStep row: work start for execution/action rows, or the booked allocation start for ResourceAssignment rows. Required for ResourceAssignment. Each linked row retains its own interval; RequestedStart remains the requested planning window. Replaces StartAt on allocation rows during deferred adoption. Merge StartAt into ActionStartDate for this ResourceAssignment row; preserve the allocation interval, duration and request-window/overlap validation. Backend/database adoption deferred. | WorkStep.ActionStartDate, WorkorderExecutionEntry.ActionStartDate, WorkStepResourceAssignment.StartAt |
ActionText | String | Nullable Required for: Execution | Standard description/text of the activity represented by this WorkStep row. On a FailureConfirmation execution-entry child, records the failure description; preserve the main executable step instructions on their own row. Replaces the separate FailureDescription field. Preserve all legacy failure text, including values up to the existing 2000-character limit, during later adoption. TemplateStep rows use ActionText for reusable instructions. Preserve the full formatted legacy InstructionHtml, including long instructions; adapt storage/rendering capacity before adoption rather than truncating it. Instructions remain separate from actual performed-action and failure-entry text. | RepositoryWorkStepRevision.ActionText, WorkStep.ActionText, WorkorderExecutionEntry.ActionText, WorkpackageOrder.FailureDescription, WorkTemplateItem.InstructionHtml |
ActionTitle | String | Nullable Required for: Repository, RepositoryRevision, MeasurementDefinition, Phase, TemplateStep | Human-readable title of this WorkStep row. Use the existing ActionTitle for executable actions, repository/revision definitions and measurement definitions; merge the former WorkStepPhase.Name into this same title field for Phase-role rows. For example, a Phase row can be titled Removal while an executable row is titled Remove hydraulic pump. Keep each row's own title; do not overwrite a task/action title with its phase label. Preserve existing ActionTitle values and phase names during later adoption, reconcile any conflicting values explicitly, and retain role-specific required validation. Backend/database adoption remains pending complete review. TemplateStep rows use ActionTitle for the required item heading. Preserve all legacy titles and the existing 250-character item capacity during adoption. Records action title for this work step. Used by: RepositoryWorkStep, RepositoryWorkStepRevision, WorkStep, WorkStepMeasurementDefinition, WorkorderExecutionEntry. Merge the phase display name into ActionTitle on its Phase-role WorkStep row. Preserve existing phase names; backend/database adoption pending complete review. Merge pending complete review · Reuse existing ActionTitle; preserve titles and phase names per row | RepositoryWorkStep.ActionTitle, RepositoryWorkStepRevision.ActionTitle, WorkStep.ActionTitle, WorkStepMeasurementDefinition.ActionTitle, WorkorderExecutionEntry.ActionTitle, WorkStepPhase.Name, WorkTemplateItem.Title |
ActivatedAt | DateTime? | Nullable Optional | Records the activated at for this work step. | RepositoryWorkStepRevision.ActivatedAt |
ActualManpower | Single? | Nullable Optional | Records actual manpower for this work step. Used by: WorkStep. | WorkStep.ActualManpower |
AdditionalInfo | String | Nullable Optional | Records additional info for this work step. | WorkStepMaterialDemand.AdditionalInfo |
AtaId | Guid? | Nullable Optional | Selects the related ata record. Used by: WorkStep. | WorkStep.AtaId |
AuthorizationId | Guid? | Nullable Optional | Selects the related authorization record. | WorkStepResourceRequest.AuthorizationId |
BookingEnd | DateTime? | Nullable Required for: Execution | Labor-time booking end timestamp associated with this executable WorkStep. Retain the nullable timestamp; null means no stop has been recorded and does not alone prove a booking is active. Book-off must use each StaffTimeBooking record's own end timestamp. Define any step-level summary for multiple staff and repeated sessions during later implementation. Renamed from LiveBookingStoppedAt; moved from WorkorderMaster. Backend/database adoption pending complete review. | WorkpackageMaster.LiveBookingStoppedAt |
BookingStart | DateTime? | Nullable Required for: Execution | Labor-time booking start timestamp associated with this executable WorkStep. Retain the nullable timestamp; null means no start has been recorded. Individual StaffTimeBooking records remain the source of booking start times. Define derivation or synchronization for multiple staff and repeated sessions during later implementation. Renamed from LiveBookingStartedAt; moved from WorkorderMaster. Backend/database adoption pending complete review. | WorkpackageMaster.LiveBookingStartedAt |
CertifiedHumanResourceId | Guid? | Nullable Optional | Nullable UUID lookup to StaffMember in Human Resources identifying the person certifying this work or execution entry. Replaces the free-text CertificationNumber field. Display the selected staff code/name and use linked staff licence/authorization records for credential details; this ID identifies the person and does not by itself verify certification privileges. Preserve legacy credential evidence and reconcile it to staff/authorization records during later adoption. | WorkStep.CertificationNumber |
ChangeReference | String | Nullable Optional | Optional reference identifying the planned software change, such as an engineering order or change request. Final field design and retention will be decided after review. Optional software-change reference. Under review; the final field design and retention will be decided later. Backend/database unchanged. Under review · Decision pending | WorkStepSoftwareChangePlan.ChangeReference |
ClassificationCode | String | Nullable Optional | Optional classification code for the resource requested by this WorkStep. Review the category definitions, lookup design and relationship to resource and authorization frameworks before later implementation. Optional resource-request classification. Under review for later implementation; category definitions, lookup design and resource/authorization integration remain to be decided. Under review · Later implementation | WorkStepResourceRequest.ClassificationCode |
ComponentActionRole | ComponentActionRole? { Subject, Removed, Installed, Source, Destination } | Nullable Optional | Role of this component identity row within its owning action: Subject for a single-unit action, Removed/Installed for replacement, or Source/Destination for paired moves and swaps. The parent action is identified by existing OwnerRecordId. This supports repeated child WorkStep rows rather than adding duplicate removed/installed identity columns. | |
ComponentActionType | ComponentActionType? { Install, Remove, Update, Replace, Swap, Inspect, Repair, Overhaul, Test, Service, Adjust, Modify, Calibrate, Other } | Nullable Optional | Action performed on a part or serialized unit: Install, Remove, Update, Replace, Swap, Inspect, Repair, Overhaul, Test, Service, Adjust, Modify, Calibrate or Other. Replaces ComponentMovement; keep EntryType as the high-level execution classification. Preserve legacy Install=1 and Remove=2 during later adoption. Update describes an update to unit data/condition; software changes retain their existing SoftwareUpdate planning/execution rules. Replace ComponentMovement with ComponentActionType in the unified proposal; preserve legacy data and role-specific validation during later adoption. | WorkorderExecutionEntry.ComponentMovement |
ConfigurationId | Guid? | Nullable Optional | Nullable UUID lookup to Configuration selecting the functional position applicable to this WorkStep row. Source and destination are separate linked rows, each using its own ConfigurationId; ComponentActionRole identifies its role. For material demand, selects where the requested part will be used. Validate the position against ConfigurationMasterId and preserve legacy location text and both movement sides during deferred adoption. | RepositoryWorkStep.ConfigurationId, RepositoryWorkStepRevision.ConfigurationId, WorkStep.ConfigurationId, WorkStepComponentSelection.ConfigurationId, WorkStepExecutionOccurrence.ConfigurationId, WorkStepMaterialDemand.ConfigurationId, WorkStepMeasurementDefinition.ConfigurationId, WorkStepRecord.ConfigurationId, WorkStepResourceAssignment.ConfigurationId, WorkStepResourceRequest.ConfigurationId, WorkStepSoftwareChangePlan.ConfigurationId, WorkorderExecutionEntry.ConfigurationId, WorkStepMaterialDemand.AircraftLocationCode, WorkorderExecutionEntry.FromConfigurationId, WorkorderExecutionEntry.ToConfigurationId |
ConfigurationMasterId | Guid? | Nullable Optional | Nullable UUID lookup selecting the configuration master for the aircraft/component position applicable to this WorkStep row, including source, destination and material-demand rows. ConfigurationId must belong to this master. Together with ConfigurationId and LocationReferenceId, replaces AircraftLocationCode. Backend/database adoption deferred. | WorkStepMaterialDemand.AircraftLocationCode |
CreationMode | WorkStepCreationMode? { Individual, Repository, Import, Link } | Nullable Required for: Execution | Records creation mode for this work step. Used by: WorkStep. | WorkStep.CreationMode |
CriticalEventId | Guid? | Nullable Optional | Nullable UUID lookup to CriticalEvent selecting this WorkStep row's category, operational requirement flags and multi-select task controls. Display category Code and Name. Replaces TaskControlProfileId for WorkStep: use CriticalEvent.ControlOptions for critical-task classification and inspection, power, testing and other task-control requirements; derive the category's independent-inspection flag from the corresponding option. Applies to executable WorkSteps and repository/revision definitions; leave empty only when no category or controls apply. Map existing profile combinations and taskcard/maintenance-task inherited controls explicitly. Preserve current signed inspection, double-inspection and reinspection closure requirements and approved/historical requirement values. Keep WorkorderMaster.CriticalEventId as a separate header selection and define inheritance explicitly. Backend/database adoption remains pending complete review. Optional category lookup; backend/database adoption pending complete review. New CriticalEvent lookup pending complete review · Replace WorkStep task-control profile selection; preserve inherited controls and closure validation during adoption | New WorkStep.CriticalEventId lookup proposal, WorkStep.TaskControlProfileId |
DefectId | Guid? | Nullable Optional | Nullable UUID lookup to the existing DefectDamageReport associated with this executable WorkStep. Select the defect by ReportNumber and Title to identify the condition being investigated or rectified. Several WorkSteps may reference the same defect; leave this empty for work unrelated to a defect. Keep defect details and reporting history on DefectDamageReport, and validate matching aircraft/component and workorder context during implementation. Applies to executable WorkSteps. Backend/database adoption pending complete review. The existing DefectDamageReport.WorkStepId identifies the originating/reporting step; preserve that separate meaning. Add defect lookup · Backend / DB adoption pending complete review | New WorkStep.DefectId lookup proposal |
DeferredDefectId | Guid? | Nullable Optional | Nullable UUID lookup to DeferredDefectMaster identifying the deferred-defect case associated with this executable WorkStep. Select by DeferralCode and Title, displaying the case Status. Several WorkSteps can reference the same deferred defect; leave empty when no deferral applies. Use the selected case's DeferredReferenceItemId lookup to obtain DeferredReferenceItem.MelCategory rather than storing separate MelCategory text on WorkStep. Keep the existing DefectId lookup for the underlying defect; when both IDs are selected, validate that the case's DefectDamageReportId matches DefectId and that its WorkorderId is consistent with the step's owning workorder. Deferral approvals, limits, expiry and closure remain managed by the deferred-defect workflow. Reconcile legacy category values and applicable historical references during deferred implementation. Applies to executable WorkSteps. Replaces duplicated MEL-category handling with a case association; legacy category text is not a foreign-key value. Backend/database adoption pending complete review. Add deferred-defect lookup · Backend / DB adoption pending complete review | New WorkStep.DeferredDefectId lookup proposal, WorkorderExecutionEntry.MelCategory |
DurationHours | Decimal? | Nullable Optional | Records duration hours for this work step. | WorkStepResourceRequest.DurationHours |
EntryType | WorkStepEntryType? { Action, InspectionAction, Measurement, Transfer, Uplift, ComponentChange, Time, SoftwareUpdate, ComponentShopAction, DoubleInspectionAction, MechanicSign, Crs, ReinspectionAction, Sign, Inspect, FailureConfirmation } | Nullable Required for: ExecutionEntry | Overall execution-entry category. Preserve all existing WorkStepEntryType values and add proposed FailureConfirmation for a linked entry recording failure confirmation using StaffMemberId and ActionEndDate. The entry belongs to the executable WorkStep through WorkStepId. Keep component operations in ComponentActionType and preserve current API compatibility during deferred adoption. FailureConfirmation is authoritative only when linked, attributable, dated and valid; derive any displayed confirmation summary from that evidence. Crs/release entries must satisfy authorization and release-scope validation; a generic sign is not release evidence. HTML review decision; backend / database adoption pending complete review. | WorkorderExecutionEntry.ActionType |
EstimatedManHours | Decimal? | Nullable Optional | Single nullable Decimal planned labor estimate in person-hours, merging PlannedManpower with repository EstimatedManHours. Example: two technicians working three hours represent six person-hours; headcount is two on the staff request Quantity. Preserve repository estimates and executable overrides on their respective rows, reconcile conflicting same-row values and explicitly convert finite Single estimates to Decimal without silent precision loss. ActualManpower remains actual effort; TotalHours remains the effort requested by a specific resource-demand row. HTML review decision; backend / database adoption pending complete review. Merge planned labor effort into EstimatedManHours. Current creation code populates PlannedManpower from task/repository estimated man-hours, so the retained unit is person-hours. Convert finite Single values to Decimal explicitly, preserving null/zero and documented precision. Reconcile differing estimates; do not sum duplicate estimates or reinterpret genuine legacy headcount as hours. Staff headcount belongs to a staff resource request Quantity. HTML review decision; backend / database adoption pending complete review. Merge decision recorded; implementation pending · One authoritative field / workflow | RepositoryWorkStepRevision.EstimatedManHours, WorkStep.PlannedManpower |
ExternalReference | String | Nullable Optional | Records external reference for this work step. | WorkStepExecutionOccurrence.ExternalReference |
FacilityId | Guid? | Nullable Optional | Selects the related facility record. | WorkStepResourceAssignment.FacilityId |
HeaderReference | String | Nullable Optional | Header reference text applicable to this WorkStep. | WorkpackageOrder.HeaderReference |
Id | Guid | Required Required for: Repository, RepositoryRevision, Execution, ComponentSelection, ExecutionOccurrence, MaterialDemand, MeasurementDefinition, All record roles, ResourceAssignment, ResourceRequest, SoftwareChangePlan, ExecutionEntry, Phase | Stable identifier for this record. Used by: RepositoryWorkStep, RepositoryWorkStepRevision, WorkStep, WorkStepComponentSelection, WorkStepExecutionOccurrence, WorkStepMaterialDemand, WorkStepMeasurementDefinition, WorkStepRecord, WorkStepResourceAssignment, WorkStepResourceRequest, WorkStepSoftwareChangePlan, WorkorderExecutionEntry. | RepositoryWorkStep.Id, RepositoryWorkStepRevision.Id, WorkStep.Id, WorkStepComponentSelection.Id, WorkStepExecutionOccurrence.Id, WorkStepMaterialDemand.Id, WorkStepMeasurementDefinition.Id, WorkStepRecord.Id, WorkStepResourceAssignment.Id, WorkStepResourceRequest.Id, WorkStepSoftwareChangePlan.Id, WorkorderExecutionEntry.Id, WorkStepPhase.Id |
IpcReference | String | Nullable Optional | Records ipc reference for this work step. | WorkStepMaterialDemand.IpcReference |
IsMandatory | Boolean? | Nullable Required for: Execution | Indicates whether mandatory applies to this work step. Used by: WorkStep. | WorkStep.IsMandatory |
IsRemovedServiceable | Boolean | Required Required for: Execution | Indicates that the component removed by this WorkStep is in serviceable condition at removal, for example when transferring a working component to another aircraft. Preserve the required Boolean and existing default false during later adoption. This records removal condition only; it does not certify installation eligibility or release. Where one step removes multiple components, reconcile this flag with each component removal record rather than assuming all have the same condition. Moved from WorkorderMaster; backend/database adoption pending complete review. Merge the duplicate legacy RemovedInServiceableCondition flag into this existing WorkStep field; reconcile differing legacy values during backend/database adoption. | WorkorderMaster.IsRemovedServiceable, WorkpackageMaster.RemovedInServiceableCondition |
LocationReferenceId | Guid? | Nullable Optional | Single nullable UUID lookup to LocationReference identifying the area, panel, zone or other aircraft/component location applicable to this WorkStep row. Rename and merge the existing WorkStep.LocationId into LocationReferenceId; LocationId already targets LocationReference, so preserve its existing UUID values and relationship rather than creating a second lookup. Also replaces HeaderAreaCode, HeaderPanelCode and HeaderZoneCode, and replaces AircraftLocationCode together with ConfigurationMasterId and ConfigurationId. Display the selected reference code/name and location category. Resolve legacy text by category and aircraft/component context, reconcile any disagreement with an existing LocationId, and preserve multiple distinct locations through separate linked WorkStep rows. Validate consistency with the selected configuration and adapt API, graph links and validation references during later implementation. Backend/database adoption remains pending complete review. Drop the duplicate LocationId name from the unified WorkStep proposal by renaming/merging it into LocationReferenceId. Both names target the same LocationReference model. Carry existing UUIDs and the relationship into the retained field; reconcile legacy area/panel/zone/location text and preserve distinct locations during later adoption. Update API, graph-link and validation references together. Backend/database adoption remains pending complete review. Rename and merge pending · Single lookup; preserve existing LocationId UUIDs and resolve legacy text during later implementation | WorkStepMaterialDemand.AircraftLocationCode, WorkStepReferenceDetails.HeaderAreaCode, WorkpackageOrder.HeaderAreaCode, WorkStepReferenceDetails.HeaderPanelCode, WorkpackageOrder.HeaderPanelCode, WorkStepReferenceDetails.HeaderZoneCode, WorkpackageOrder.HeaderZoneCode, WorkStep.LocationId |
MaintenancePublicationId | Guid? | Nullable Optional | Selects the related maintenance publication record. Used by: WorkStep. | WorkStep.MaintenancePublicationId |
MaintenanceTaskId | Guid? | Nullable Optional | Selects the related maintenance task record. Used by: WorkStep. | WorkStep.MaintenanceTaskId |
MeasurementIdentifier | String | Nullable Required for: MeasurementDefinition | Single local measurement code used on a planned MeasurementDefinition row and its corresponding measurement-result execution entries, replacing the separate MeasurementId name. Example: CLR identifies the clearance measurement within the owning executable WorkStep. Require a nonempty code on measurement definitions and on results associated with a planned measurement; definition codes must be unique within their owning WorkStep, while repeated readings may reuse the same code on separate result rows. Preserve formula references, case/normalization behavior and existing result-to-definition matching during adoption. MeasurementIdentifierId remains the separate UUID lookup to the reusable common measurement definition; this text code is not that master ID. Preserve every legacy code and repeated result, reconcile conflicts explicitly and adapt planning, result entry, formulas and closure validation before backend/database adoption. Backend/database changes remain pending complete review. Merge MeasurementId into the single MeasurementIdentifier text code for measurement definitions and corresponding execution results. Preserve per-workstep uniqueness of planned codes, formula references and repeated readings; keep MeasurementIdentifierId as the separate reusable definition lookup. Backend/database adoption remains pending complete review. Merge pending complete review · One local code for definitions/results; MeasurementIdentifierId remains the reusable master lookup | WorkorderExecutionEntry.MeasurementIdentifier, WorkStepMeasurementDefinition.MeasurementId |
MeasurementIdentifierId | Guid? | Nullable Optional | Nullable UUID lookup to the common MeasurementIdentifier definition for the measurement associated with this WorkStep. Manage units through MeasurementIdentifier.Unit and UnitGroup, numeric limits through its limit fields, and custom allowed answers through its Values. Manage numerical/custom classification in the common definition during deferred implementation; review any required extension of MeasurementIdentifier rather than retaining a separate WorkStep MeasurementType. The separate MeasurementType, MeasurementUnit, MeasurementValue, NumericValue, PassFailValue, MeasurementsJson and MeasurementsPlanningRevisionId fields are marked Dropped. Manage values through the common measurement framework associated with this lookup. The current MeasurementIdentifier stores reusable definitions, so per-workstep result storage and association require review/implementation before retiring the old value fields. Preserve each actual reading and pass/fail outcome, including an unrecorded outcome, with its workstep and applicable definition/version; do not overwrite a shared definition with different steps' readings. Convert bundled JSON into structured linked measurement rows while preserving repeated measurements and repository/planning revision traceability. Reconcile legacy units, limits and readings, and preserve the definition/version applicable to historical results before adoption. Legacy ComponentTaskMeasurement IDs require explicit mapping to converted common definitions; measured values and numeric limits must never be copied into this UUID lookup. Backend/database adoption remains pending complete review. Replace the component-specific link through the common WorkStep measurement framework and existing MeasurementIdentifierId. Map legacy measurement definitions and preserve result types, limits, units, reporting/calibration settings; custom-answer links need explicit mapping. Backend/database adoption deferred. Common measurement definition replacement pending · Manage definitions and values through the common MeasurementIdentifier framework; preserve per-workstep readings and historical revision context during adoption | WorkStepMeasurementDefinition.MeasurementIdentifierId, WorkStepMeasurementDefinition.LowerLimit, WorkorderExecutionEntry.LowerLimit, RepositoryWorkStep.ComponentTaskMeasurementId, RepositoryWorkStepRevision.ComponentTaskMeasurementId, WorkStep.ComponentTaskMeasurementId, WorkStepComponentSelection.ComponentTaskMeasurementId, WorkStepExecutionOccurrence.ComponentTaskMeasurementId, WorkStepMaterialDemand.ComponentTaskMeasurementId, WorkStepMeasurementDefinition.ComponentTaskMeasurementId, WorkStepRecord.ComponentTaskMeasurementId, WorkStepResourceAssignment.ComponentTaskMeasurementId, WorkStepResourceRequest.ComponentTaskMeasurementId, WorkStepSoftwareChangePlan.ComponentTaskMeasurementId, WorkorderExecutionEntry.ComponentTaskMeasurementId |
MeasurementNotApplicable | Boolean? | Nullable Required for: ExecutionEntry | Indicates whether measurement not applicable applies to this work step. | WorkorderExecutionEntry.MeasurementNotApplicable |
MetadataJson | String | Nullable Optional | Records metadata json for this work step. | RepositoryWorkStepRevision.MetadataJson |
OwnerKind | WorkStepOwnerKind? { Workorder, TaskCard, Jobcard, CustomerRequirement } | Nullable Required for: ExecutionOccurrence | Records owner kind for this work step. | WorkStepExecutionOccurrence.OwnerKind |
OwnerRecordId | Guid? | Nullable Required for: ComponentSelection | Selects the related owner record record. For TemplateStep rows, optional self-reference to the parent TemplateStep. Preserve nested grouping, require the same owning template and controlled revision context, and reject self/cyclic ownership. Preserve existing component-selection ownership for other roles. | WorkStepComponentSelection.OwnerRecordId, WorkTemplateItem.ParentItemId |
PartId | Guid? | Nullable Optional | Nullable UUID lookup to PartMaster identifying the part for this WorkStep row. Source and destination parts, including software before/after identities, belong to separate linked rows using this same field. ComponentActionRole identifies source/destination or removed/installed roles. Derive/validate PartId from a saved RotableId; otherwise use UndefinedPartNumber when unresolved. Adapt legacy mandatory checks and preserve both sides during deferred adoption; final fulfillment/configuration mutation requires resolved master records. For Uplift entries, reuse PartId to identify the uplifted material instead of UpliftPartId; require a saved PartMaster record for an accepted uplift. Preserve uplift part identities and reconcile any conflicting existing PartId on the same row before adoption. Do not overwrite separate component source/destination identities; preserve them in their own linked rows. Backend/database adoption remains pending complete review. Replace UpliftPartId with the existing PartId field on the same uplift execution row. Preserve original uplift values, reconcile conflicts explicitly and adapt API/UI validation during later adoption. The original field remains documented here for review; backend/database changes remain pending complete review. Merge pending complete review · Reuse PartId for uplift entries; preserve role-specific validation and historical values | WorkStepComponentSelection.PartId, WorkStepMaterialDemand.PartId, RepositoryWorkStep.FromPartId, RepositoryWorkStepRevision.FromPartId, WorkStep.FromPartId, WorkStepComponentSelection.FromPartId, WorkStepExecutionOccurrence.FromPartId, WorkStepMaterialDemand.FromPartId, WorkStepMeasurementDefinition.FromPartId, WorkStepRecord.FromPartId, WorkStepResourceAssignment.FromPartId, WorkStepResourceRequest.FromPartId, WorkStepSoftwareChangePlan.FromPartId, WorkorderExecutionEntry.FromPartId, RepositoryWorkStep.ToPartId, RepositoryWorkStepRevision.ToPartId, WorkStep.ToPartId, WorkStepComponentSelection.ToPartId, WorkStepExecutionOccurrence.ToPartId, WorkStepMaterialDemand.ToPartId, WorkStepMeasurementDefinition.ToPartId, WorkStepRecord.ToPartId, WorkStepResourceAssignment.ToPartId, WorkStepResourceRequest.ToPartId, WorkStepSoftwareChangePlan.ToPartId, WorkorderExecutionEntry.ToPartId, WorkorderExecutionEntry.UpliftPartId |
PartNumber | String | Nullable Optional | Part-number display/history snapshot for the selected master or supplied undefined part identity. Preserve recorded evidence; PartId or UndefinedPartNumber supplies the input identity. | WorkStepComponentSelection.PartNumber |
Quantity | Decimal? | Nullable Required for: MaterialDemand, ResourceRequest | Quantity associated with this WorkStep row. On MaterialDemand and ResourceRequest rows, it is the positive planned/requested amount or resource count. On ExecutionEntry rows with EntryType Uplift, it is the positive recorded uplift amount, replacing UpliftQuantity; other entry types retain their own applicable validation. These amounts belong to separate rows: planned demand and recorded uplift must not overwrite each other. Preserve existing precision, original uplift quantities and their UpliftUnit context; reconcile conflicting values before adoption and adapt uplift input/validation to Quantity. Backend/database adoption remains pending complete review. Replace UpliftQuantity with the existing Quantity field on the same uplift execution row. Preserve original uplift values, reconcile conflicts explicitly and adapt API/UI validation during later adoption. The original field remains documented here for review; backend/database changes remain pending complete review. Merge pending complete review · Reuse Quantity for uplift entries; preserve role-specific validation and historical values | WorkStepMaterialDemand.Quantity, WorkStepResourceRequest.Quantity, WorkorderExecutionEntry.UpliftQuantity |
RecordKind | WorkStepRecordKind { Execution, Repository, RepositoryRevision, ExecutionEntry, ResourceRequest, MeasurementDefinition, SoftwareChangePlan, ComponentSelection, ExecutionOccurrence, ResourceAssignment, MaterialDemand, Phase, ReferenceDetails, TemplateStep } | Required Required for: Repository, RepositoryRevision, Execution, ComponentSelection, ExecutionOccurrence, MaterialDemand, MeasurementDefinition, All record roles, ResourceAssignment, ResourceRequest, SoftwareChangePlan, ExecutionEntry | Role of the unified WorkStep row. Preserve existing numeric role values and review new Phase/ReferenceDetails values during implementation. Use one model while retaining different executable, repository, revision, entry, demand, assignment and definition records. Append TemplateStep as a definition-only role while preserving existing numeric roles. TemplateStep rows are owned by WorkTemplateMasterId; issuing creates separate Execution rows, and template edits must not rewrite existing issued work. Records record kind for this work step. Used by: RepositoryWorkStep, RepositoryWorkStepRevision, WorkStep, WorkStepComponentSelection, WorkStepExecutionOccurrence, WorkStepMaterialDemand, WorkStepMeasurementDefinition, WorkStepRecord, WorkStepResourceAssignment, WorkStepResourceRequest, WorkStepSoftwareChangePlan, WorkorderExecutionEntry. | RepositoryWorkStep.RecordKind, RepositoryWorkStepRevision.RecordKind, WorkStep.RecordKind, WorkStepComponentSelection.RecordKind, WorkStepExecutionOccurrence.RecordKind, WorkStepMaterialDemand.RecordKind, WorkStepMeasurementDefinition.RecordKind, WorkStepRecord.RecordKind, WorkStepResourceAssignment.RecordKind, WorkStepResourceRequest.RecordKind, WorkStepSoftwareChangePlan.RecordKind, WorkorderExecutionEntry.RecordKind |
ReleaseSign | String | Nullable Required for: Execution | Recorded release-sign text associated with this executable WorkStep. Preserve the existing nullable text during later adoption; review the exact legacy sign meaning and its relationship to staff identification, sign-off evidence and release records before implementation. Retained as legacy sign/reference text only; it does not establish release. Authoritative release evidence and the unified WorkStatus rule supersede the former ReleasedToService flag. HTML review decision; backend / database adoption pending complete review. HTML review decision; backend / database adoption pending complete review. Merge decision recorded; implementation pending · One authoritative field / workflow | WorkpackageOrder.ReleaseSign |
RequestDescription | String | Nullable Optional | Optional detailed explanation of this material or resource request, including its purpose, requirements and requester instructions. Example: Provide a calibrated hydraulic test rig with the correct pump adapter for the requested planning window. Applies to MaterialDemand and ResourceRequest rows; keep structured part/resource selection, Quantity, RequestedStart, RequestedEnd and RequestStatus in their own fields. ActionRemarks remains separate execution/action commentary; review legacy request notes explicitly during later adoption without automatically overwriting them. Backend/database and UI adoption remain pending complete review. Applies to MaterialDemand and ResourceRequest rows; proposed field, not an existing backend column. New request field pending complete review · Backend / DB and request UI adoption pending | New WorkStep.RequestDescription request proposal |
RequestStatus | WorkStepResourceRequestStatus? { Requested, Cancelled, Fulfilled } | Nullable Required for: ResourceRequest | Stored request lifecycle for ResourceRequest rows only: Requested, Cancelled or Fulfilled. For MaterialDemand rows expose a read-only summary derived from linked MaterialPartRequest fulfilment records and verified quantities; do not allow a second independently editable demand status. Fulfilled requires verified net fulfilled quantity covering the required Quantity; partial supply remains Requested. Cancelled requires an explicitly cancelled demand or cancellation of all unfulfilled requirement with no remaining active request. Otherwise the summary is Requested. Allocation, ordering and a Closed request alone do not prove fulfilment; preserve PreStepCloseStatus and transaction evidence when work-step closure changes request status. ResourceRequest Fulfilled requires confirmed delivery of the requested resource service, rather than allocation alone. HTML review decision; backend / database adoption pending complete review. Merge decision recorded; implementation pending · One authoritative field / workflow | WorkStepMaterialDemand.RequestStatus, WorkStepResourceRequest.RequestStatus |
RequestTitle | String | Nullable Required for: MaterialDemand, ResourceRequest | Short title identifying this material or resource request on its own request row. Examples: Two replacement pump seals or Hydraulic test rig for pump testing. Required for MaterialDemand and ResourceRequest rows; nullable for other roles. Display beside RequestStatus in request lists. Keep the owning executable step's ActionTitle on that step; backend/database and UI adoption remain pending complete review. Applies to MaterialDemand and ResourceRequest rows; proposed field, not an existing backend column. New request field pending complete review · Backend / DB and request UI adoption pending | New WorkStep.RequestTitle request proposal |
RequestedEnd | DateTime? | Nullable Optional | Requested end of the resource-demand planning window. Distinct from ActionEndDate on an action or resource-assignment row. Saved assignments must remain within their owning request window. | WorkStepResourceRequest.RequestedEnd |
RequestedStart | DateTime? | Nullable Optional | Requested start of the resource-demand planning window. Distinct from the actual action interval and the saved resource allocation interval, each on its own row. | WorkStepResourceRequest.RequestedStart |
ResourceCode | String | Nullable Optional | Records resource code for this work step. | WorkStepResourceRequest.ResourceCode |
ResourceType | WorkStepResourceType? { Aircraft, ToolEquipment, Facility, Staff } | Nullable Required for: ResourceRequest | Records resource type for this work step. | WorkStepResourceRequest.ResourceType |
RestorationCounterpartStepId | Guid? | Nullable Optional | Selects the related restoration counterpart step record. Used by: WorkStep. | WorkStep.RestorationCounterpartStepId |
RotableId | Guid? | Nullable Optional | Nullable UUID lookup to RotableMaster identifying the specific serialized unit involved in this component action or selection. Merge legacy ComponentId into RotableId. Derive PartId from the selected rotable and verify any supplied part agrees. Use UndefinedRotableNumber only when no saved unit is selected; reconcile conflicting existing ComponentId/RotableId values before adoption. Replace ComponentId with RotableId in the unified proposal; preserve legacy data and role-specific validation during later adoption. | WorkStepComponentSelection.RotableId, WorkorderExecutionEntry.ComponentId |
RoutingStatus | ComponentRoutingStatus { AtCurrentShop, AwaitingRoute, InTransit, Arrived } | Required Required for: Execution | Physical routing stage of the component associated with this executable WorkStep: at its current shop, awaiting routing, in transit or arrived. Preserve the existing AtCurrentShop default and all enum values. Merge the former package/order definitions and reconcile differing values during adoption; review how step-level routing links to component transfers and locations. Moved from WorkorderMaster; backend/database adoption and workflow integration pending complete review. | WorkpackageMaster.RoutingStatus, WorkorderMaster.RoutingStatus |
ScheduledDateTime | DateTime? | Nullable Optional | Records the scheduled date time for this work step. Used by: WorkStep. | WorkStep.ScheduledDateTime |
ScopeCode | String | Nullable Optional | Records scope code for this work step. | WorkStepResourceRequest.ScopeCode |
Sequence | Int32? | Nullable Required for: MeasurementDefinition, ExecutionEntry | Records sequence for this work step. | WorkStepMeasurementDefinition.Sequence, WorkorderExecutionEntry.Sequence |
SerialOrBatchNumber | String | Nullable Optional | Serial or batch identifier recorded for the action subject. Capture from the selected rotable or from supplied evidence for an undefined unit; preserve the value recorded at execution time. | WorkStepComponentSelection.SerialOrBatchNumber |
ShopcardCollectionStatus | ShopcardCollectionStatus { NotRequired, Needed, Complete } | Required Required for: Execution | Single required shopcard-collection state for this executable WorkStep: NotRequired means collection is not applicable, Needed means applicable collection remains outstanding, and Complete means the applicable shopcard collection is finished. Default NotRequired for new rows only when collection is genuinely not required. Replaces separate collection Boolean flags; derive header-level collection summaries and collected counts from applicable WorkStep states rather than storing parallel flags. Record collection transitions with their original timestamps and actor evidence in audit history instead of a separate ShopcardCollectedAt property. During adoption, map collected=true to Complete and required=true with IsShopcardCollected=false to Needed; determine NotRequired explicitly, reconcile conflicting enum/Boolean values and avoid treating an uncollected flag alone as evidence collection is unnecessary. Preserve package/header scope when mapping aggregate legacy flags to individual WorkSteps; a header-complete flag must not silently mark every step complete. Preserve existing collection timestamps, including those absent from audit history, and define collected-count behavior for NotRequired rows. Backend/database adoption remains pending complete review. Consolidated collection state; timestamp and transition evidence preserved through audit history during later adoption. Merge pending complete review · One enum field; collection timestamps and evidence retained through audit history | WorkorderMaster.ShopcardCollectionStatus, WorkStep.IsShopcardCollected, WorkStep.ShopcardCollectedAt, WorkpackageMaster.ShopcardCollectionNeeded, WorkpackageMaster.ShopcardCollectionComplete |
SpecialCode | String | Nullable Optional | Single optional special classification/reference code for the owning executable WorkStep or linked reference row, merging HeaderSpecialCode. Preserve original code context and source provenance; reconcile conflicting values explicitly, preserving distinct contextual codes on separate linked reference rows. Retain the existing 250-character capacity and reject silent truncation. HTML review decision; backend / database adoption pending complete review. Merge decision recorded; implementation pending · One authoritative field / workflow | WorkStep.SpecialCode, WorkStepReferenceDetails.HeaderSpecialCode, WorkpackageOrder.HeaderSpecialCode |
StaffMemberId | Guid? | Nullable Optional | Nullable UUID lookup to StaffMember for the person associated with this WorkStep row. On ResourceAssignment rows, the assigned staff member; on a FailureConfirmation execution entry, the person who confirmed the failure. Required for a failure-confirmation entry. Use a distinct linked entry row so the confirmer is not confused with assigned or certifying staff. | WorkStepResourceAssignment.StaffMemberId, WorkpackageOrder.FailureConfirmedByStaffId |
SystemAuditId | Guid? | Nullable Optional | Links to system audit history when this model stores the reference. Preserve former template-item audit references and source history when moving the definition rows. Links to system audit history when this model stores the reference. Used by: RepositoryWorkStep, RepositoryWorkStepRevision, WorkStep, WorkStepComponentSelection, WorkStepExecutionOccurrence, WorkStepMaterialDemand, WorkStepMeasurementDefinition, WorkStepRecord, WorkStepResourceAssignment, WorkStepResourceRequest, WorkStepSoftwareChangePlan, WorkorderExecutionEntry. | RepositoryWorkStep.SystemAuditId, RepositoryWorkStepRevision.SystemAuditId, WorkStep.SystemAuditId, WorkStepComponentSelection.SystemAuditId, WorkStepExecutionOccurrence.SystemAuditId, WorkStepMaterialDemand.SystemAuditId, WorkStepMeasurementDefinition.SystemAuditId, WorkStepRecord.SystemAuditId, WorkStepResourceAssignment.SystemAuditId, WorkStepResourceRequest.SystemAuditId, WorkStepSoftwareChangePlan.SystemAuditId, WorkorderExecutionEntry.SystemAuditId, WorkStepPhase.SystemAuditId, WorkTemplateItem.SystemAuditId |
TaskCardId | Guid? | Nullable Optional | Selects the related task card record. Used by: WorkStep, WorkStepExecutionOccurrence. | WorkStep.TaskCardId, WorkStepExecutionOccurrence.TaskCardId |
TaskReferenceRemarks | String | Nullable Optional | Task-reference remarks applicable to this executable WorkStep. Merge the legacy header remarks with the existing WorkStepReferenceDetails remarks into one nullable field; preserve the 2000-character maximum and reconcile differing legacy values during later adoption. Moved / merged from WorkorderMaster; backend/database adoption pending complete review. | WorkStepReferenceDetails.TaskReferenceRemarks, WorkpackageOrder.TaskReferenceRemarks |
TechAssistanceRequested | Boolean | Required Required for: Execution | Records that technical assistance has been requested for this executable WorkStep. Preserve the required Boolean and existing default false. This flag records the request; it does not identify the assigned assistance provider or mean assistance has been delivered. Workflow integration remains pending review. Moved / merged from WorkorderMaster; backend/database adoption pending complete review. | WorkorderMaster.TechAssistanceRequested |
TextValue | String | Nullable Optional | Textual result value for this WorkStep record, including a measurement execution entry. Merge the former MeasurementText into this single retained TextValue field. On measurement entries, store the actual text/discrete answer for that individual reading and associate it with the local MeasurementIdentifier code and selected reusable MeasurementIdentifierId definition. Validate custom answers against the applicable definition version; preserve exact original text and explicit mappings for historical Pass/Fail and custom labels. Keep results on their own execution rows rather than overwriting reusable master definitions, repository instructions or other readings. MeasurementNotApplicable remains separate so N/A, an empty/unrecorded answer and an actual text result remain distinguishable. Preserve legacy text up to the existing 1000-character limits and reconcile any differing TextValue/MeasurementText on the same row before adoption. Adapt result entry, formula handling where applicable and both generic/component measurement closure checks during later implementation. Backend/database adoption remains pending complete review. Merge MeasurementText into the retained TextValue property for individual textual/custom measurement results. Preserve original answers, repeated result rows, historical definition/allowed-answer context and explicit N/A handling. Reconcile conflicting values on the same legacy row and adapt measurement save/closure validation during adoption. Backend/database unchanged. Merge pending complete review · One per-reading text result; preserve N/A distinction and definition/version context | RepositoryWorkStep.TextValue, RepositoryWorkStepRevision.TextValue, WorkStep.TextValue, WorkStepComponentSelection.TextValue, WorkStepExecutionOccurrence.TextValue, WorkStepMaterialDemand.TextValue, WorkStepMeasurementDefinition.TextValue, WorkStepRecord.TextValue, WorkStepResourceAssignment.TextValue, WorkStepResourceRequest.TextValue, WorkStepSoftwareChangePlan.TextValue, WorkorderExecutionEntry.TextValue, WorkorderExecutionEntry.MeasurementText |
TimeOffsetHours | Decimal? | Nullable Optional | Records the time offset hours for this work step. | WorkStepResourceRequest.TimeOffsetHours |
TotalHours | Decimal? | Nullable Optional | Records total hours for this work step. | WorkStepResourceRequest.TotalHours |
TransferApprovalNumber | String | Nullable Optional | Records transfer approval number for this work step. | WorkorderExecutionEntry.TransferApprovalNumber |
TransferBaseline | DateTime? | Nullable Optional | Records transfer baseline for this work step. | WorkorderExecutionEntry.TransferBaseline |
TransferBaselineBlockHours | Decimal? | Nullable Optional | Records transfer baseline block hours for this work step. | WorkorderExecutionEntry.TransferBaselineBlockHours |
TransferBaselineCycles | Decimal? | Nullable Optional | Records transfer baseline cycles for this work step. | WorkorderExecutionEntry.TransferBaselineCycles |
TransferBaselineHours | Decimal? | Nullable Optional | Records transfer baseline hours for this work step. | WorkorderExecutionEntry.TransferBaselineHours |
TransferBlockHours | Decimal? | Nullable Optional | Records transfer block hours for this work step. | WorkorderExecutionEntry.TransferBlockHours |
TransferCheckOnlyActive | Boolean? | Nullable Required for: ExecutionEntry | Indicates whether transfer check only active applies to this work step. | WorkorderExecutionEntry.TransferCheckOnlyActive |
TransferCycles | Decimal? | Nullable Optional | Records transfer cycles for this work step. | WorkorderExecutionEntry.TransferCycles |
TransferDays | Decimal? | Nullable Optional | Records transfer days for this work step. | WorkorderExecutionEntry.TransferDays |
TransferDeferralKind | WorkorderTransferDeferralKind? { Ordinary, Defer } | Nullable Optional | Records transfer deferral kind for this work step. | WorkorderExecutionEntry.TransferDeferralKind |
TransferDueAt | DateTime? | Nullable Optional | Records the transfer due at for this work step. | WorkorderExecutionEntry.TransferDueAt |
TransferDueBlockHours | Decimal? | Nullable Optional | Records the transfer due block hours for this work step. | WorkorderExecutionEntry.TransferDueBlockHours |
TransferDueCycles | Decimal? | Nullable Optional | Records the transfer due cycles for this work step. | WorkorderExecutionEntry.TransferDueCycles |
TransferDueHours | Decimal? | Nullable Optional | Records the transfer due hours for this work step. | WorkorderExecutionEntry.TransferDueHours |
TransferHours | Decimal? | Nullable Optional | Records transfer hours for this work step. | WorkorderExecutionEntry.TransferHours |
TransferInputType | WorkorderTransferInputType? { ToGo, Due } | Nullable Optional | Records transfer input type for this work step. | WorkorderExecutionEntry.TransferInputType |
TransferReference | String | Nullable Optional | Records transfer reference for this work step. | WorkorderExecutionEntry.TransferReference |
TransferStation | String | Nullable Optional | Records transfer station for this work step. | WorkorderExecutionEntry.TransferStation |
TransferToMaintenanceTaskId | Guid? | Nullable Optional | Selects the related transfer to maintenance task record. | WorkorderExecutionEntry.TransferToMaintenanceTaskId |
TransferToTaskCardId | Guid? | Nullable Optional | Selects the related transfer to task card record. | WorkorderExecutionEntry.TransferToTaskCardId |
TransferToWorkorderId | Guid? | Nullable Optional | Selects the related transfer to workorder record. | WorkorderExecutionEntry.TransferToWorkorderId |
TransferType | WorkorderTransferType? { NewLimits, NoNewLimits, ExtendExistingLimits, AdjustExistingLimits } | Nullable Optional | Records transfer type for this work step. | WorkorderExecutionEntry.TransferType |
UndefinedPartNumber | String | Nullable Optional | Part number supplied when the part is not yet defined in PartMaster. Mutually exclusive with PartId as an input identity. Trim and retain the original number; use existing PartNumber only as a display/history snapshot. Resolve to a saved part before stock or configuration changes. This text is not an invented UUID. | |
UndefinedRotableNumber | String | Nullable Optional | Identifier supplied for a serialized unit not yet defined in RotableMaster. Mutually exclusive with RotableId as an input identity; capture its serial/batch separately in SerialOrBatchNumber where known. May accompany a saved PartId or UndefinedPartNumber. Resolve the unit before stock/configuration mutation; do not infer a master record solely from matching text. | |
UpdateId | Guid? | Nullable Optional | Links to the preceding revision or update record. Preserve template-item update chains with explicit old/new identity mapping; do not rewrite existing execution update chains. Links to the preceding revision or update record. Used by: RepositoryWorkStep, RepositoryWorkStepRevision, WorkStep, WorkStepComponentSelection, WorkStepExecutionOccurrence, WorkStepMaterialDemand, WorkStepMeasurementDefinition, WorkStepRecord, WorkStepResourceAssignment, WorkStepResourceRequest, WorkStepSoftwareChangePlan, WorkorderExecutionEntry. | RepositoryWorkStep.UpdateId, RepositoryWorkStepRevision.UpdateId, WorkStep.UpdateId, WorkStepComponentSelection.UpdateId, WorkStepExecutionOccurrence.UpdateId, WorkStepMaterialDemand.UpdateId, WorkStepMeasurementDefinition.UpdateId, WorkStepRecord.UpdateId, WorkStepResourceAssignment.UpdateId, WorkStepResourceRequest.UpdateId, WorkStepSoftwareChangePlan.UpdateId, WorkorderExecutionEntry.UpdateId, WorkStepPhase.UpdateId, WorkTemplateItem.UpdateId |
UpliftUnit | String | Nullable Optional | Records uplift unit for this work step. | WorkorderExecutionEntry.UpliftUnit |
WorkScope | WorkStepWorkScope? { Inspection, Repair, Overhaul, Modification, Testing } | Nullable Optional | Records work scope for this work step. Used by: WorkStep. | WorkStep.WorkScope |
WorkStatus | WorkStatus { Draft, Planning, Open, InProgress, Production, QualityReview, Released, Closed, Cancelled, Completed, NotPerformed, Ready, Paused, Removed, Testing, ApprovedForRelease } | Required Required for: Execution | Single required lifecycle state for an executable WorkStep, merging WorkStatus, CompletionState, ExecutionStatus and the already retired ShopStatus. Use the WorkStatus enum with Draft as the default. Open/Ready identify preparation, InProgress/Production/Testing identify active work, Paused identifies suspended work, Completed identifies completion of physical work, QualityReview and ApprovedForRelease identify quality progression, Released requires valid release evidence, and Closed identifies final administrative closure. Planning, NotPerformed, Cancelled and Removed retain their distinct meanings. These are allowed states, not a compulsory linear sequence. The complete-work command performs signature, measurement, control and sequence validation before entering Completed; subsequent quality/release transitions require the recorded completion evidence. Use immutable transition/action evidence to report work performed after the current state advances beyond Completed. Never infer completion from ActionEndDate alone. Paused blocks execution changes; NotPerformed, Cancelled and Removed do not count as performed work. ApprovedForRelease is readiness, not release. Map legacy O/I/C/X to Open/InProgress/Closed/Cancelled; reconcile conflicting completion, shop and header states using evidence/history rather than enum order. Retain original source-state values in adoption history. Header aggregate states must not overwrite every child step. HTML review decision; backend / database adoption pending complete review. Moved from WorkorderMaster; backend/database adoption and workflow integration pending complete review. Merge this lifecycle field into WorkStatus. Preserve its original state and transition evidence, including physical completion versus quality/release progression; do not discard a completed-work fact when the current lifecycle state advances. HTML review decision; backend / database adoption pending complete review. Merge decision recorded; implementation pending · One authoritative field / workflow | WorkorderMaster.WorkorderStatus, WorkorderMaster.WorkpackageStatus, WorkpackageMaster.WorkpackageStatus, WorkStep.CompletionState, WorkStep.ExecutionStatus, WorkpackageMaster.ShopStatus, WorkorderMaster.ShopStatus |
WorkStepId | Guid? | Nullable Required for: MaterialDemand, MeasurementDefinition, ResourceRequest, SoftwareChangePlan, ExecutionEntry, ReferenceDetails | Self-reference to the owning executable WorkStep for entries, resource/material demand, measurement/software definitions and reference details. Keep role-specific required ownership and uniqueness rules; the old reference-details primary key identifies its owner. Planned MaterialDemand and ResourceRequest child rows may belong to a TemplateStep as well as an executable WorkStep, with valid role-pair and template-scope checks. Execution entries, actual assignments, bookings and signatures remain attached to executable rows; template definitions do not receive actual execution evidence. Identifies the work step that owns this measurement definition; the AMOS Measurement ID is unique among measurements on this step. | WorkStepMaterialDemand.WorkStepId, WorkStepMeasurementDefinition.WorkStepId, WorkStepResourceRequest.WorkStepId, WorkStepSoftwareChangePlan.WorkStepId, WorkorderExecutionEntry.WorkStepId, WorkStepReferenceDetails.WorkStepId |
WorkStepNumber | String | Nullable Required for: Repository, Execution, TemplateStep | Single number/ordering field replacing the separate WorkStepSequence. Keep String storage to preserve repository workstep codes. For Execution-role rows, store a positive whole-number step value such as 1, 2 or 10 and use its parsed numeric value for ordering and sequence validation; never sort these values lexicographically. Derive the full display label from the owning workorder/occurrence reference plus this step number rather than persisting a second sequence field. Repository-role rows retain their existing alphanumeric WorkStepNumber codes and are not subject to numeric execution ordering. During adoption, use each existing execution WorkStepSequence as the numeric step value, reconcile disagreements with the old WorkStepNumber suffix, and preserve original full/custom numbers and external references in history or explicit compatibility mappings. Preserve UUID identity and ownership scope, define duplicate/concurrent-number allocation rules, and adapt creation, sequencing, counterpart generation, API/UI display and indexes before retiring WorkStepSequence. Backend/database adoption remains pending complete review. TemplateStep rows use positive whole-number text for ordering, derived from the former item Sequence. Compare numerically, enforce the intended sibling order within template ownership, and preserve hierarchy and old ordering. Issuing allocates executable numbers separately and remaps parent/child references. Merge WorkStepSequence into the single WorkStepNumber field. Preserve the existing positive execution sequence as the numeric step number; compare it numerically and derive the full owner-prefixed display label. Retain repository alphanumeric number codes, preserve old execution labels/history and reconcile mismatches during adoption. Update sequence-dependent lifecycle validation, generation and indexes before retiring this property. Backend/database adoption remains pending complete review. Merge and role-specific validation pending complete review · One numbering field; numeric execution order and derived full display label | RepositoryWorkStep.WorkStepNumber, WorkStep.WorkStepNumber, WorkStep.WorkStepSequence, WorkTemplateItem.Sequence |
WorkTemplateId | Guid? | Nullable Required for: Execution | Nullable lookup to the selected work template for this executable WorkStep. Preserve existing template and active-revision validation during later adoption; review how this lookup relates to existing task/repository/revision references. Moved / merged from WorkorderMaster; backend/database adoption pending complete review. | WorkorderMaster.WorkTemplateId |
WorkTemplateMasterId | Guid? | Nullable Required for: TemplateStep | Nullable UUID foreign key to WorkTemplateMaster owning this reusable template instruction. Required for RecordKind TemplateStep; template-definition rows do not require WorkorderMasterId. Template-owned planned demand rows must resolve to the same template through their owning step. Execution rows remain owned by WorkorderMasterId and may retain this template reference as source context. Resolve each old WorkTemplateItem.WorkTemplateRevisionId through its revision to the correct template master; never copy revision UUIDs into this foreign key. Preserve exact controlled revision and repository provenance separately during later adoption; the master ID alone is not revision identity. Backend/database adoption pending complete review. | WorkStep.WorkTemplateMasterId (new foreign-key proposal), WorkTemplateItem.WorkTemplateRevisionId |
WorkorderMasterId | Guid? | Nullable Optional | Owning child WorkorderMaster from the reviewed parent/child header design. Executable steps belong to the child workorder; validate parent scope and aircraft/component context. Selects the related workorder master record. Used by: WorkStep. | WorkStep.WorkorderMasterId |
Resolved workflow and field overlaps
Review decisions only. Backend services, APIs and database adoption remain pending complete review.
| Topic | Decision | Workflow and preservation rules |
|---|---|---|
| WorkStatus / CompletionState / ExecutionStatus / ShopStatus | One WorkStatus lifecycle | Single required lifecycle state for an executable WorkStep, merging WorkStatus, CompletionState, ExecutionStatus and the already retired ShopStatus. Use the WorkStatus enum with Draft as the default. Open/Ready identify preparation, InProgress/Production/Testing identify active work, Paused identifies suspended work, Completed identifies completion of physical work, QualityReview and ApprovedForRelease identify quality progression, Released requires valid release evidence, and Closed identifies final administrative closure. Planning, NotPerformed, Cancelled and Removed retain their distinct meanings. These are allowed states, not a compulsory linear sequence. The complete-work command performs signature, measurement, control and sequence validation before entering Completed; subsequent quality/release transitions require the recorded completion evidence. Use immutable transition/action evidence to report work performed after the current state advances beyond Completed. Never infer completion from ActionEndDate alone. Paused blocks execution changes; NotPerformed, Cancelled and Removed do not count as performed work. ApprovedForRelease is readiness, not release. Map legacy O/I/C/X to Open/InProgress/Closed/Cancelled; reconcile conflicting completion, shop and header states using evidence/history rather than enum order. Retain original source-state values in adoption history. Header aggregate states must not overwrite every child step. Allow only validated role-specific transitions. Completed may advance to QualityReview, ApprovedForRelease, Released and Closed; applicable work may use Testing before completion. Rework/reopen transitions require an authorized reason and preserve/invalidate dependent evidence explicitly. Use one lifecycle policy for entry saves, complete-work commands, reports, shop readiness and release gates. Performed-work reporting reads validated completion history; quality readiness requires ApprovedForRelease or valid subsequent release/closure evidence. Historical Closed alone is insufficient to fabricate completion or release. |
| Two measurement-validation paths | One measurement validation pipeline | Resolve planned measurements to MeasurementIdentifierId and a frozen applicable definition/version. Use MeasurementIdentifier as the local code and preserve explicit legacy ComponentTaskMeasurement mappings. Validate each reading once: ownership/code association, result type, unit, N/A policy, allowed answers, numerical limits, applicable formulas and required signatures. Result storage must preserve repeated observations and the definition/version used for each reading; never store readings on the reusable definition master. Run the same validator on result entry and completion, then enforce required-result coverage at completion. Preserve component formulas, signed results and historical definitions; replace the parallel component/generic validators with adapters feeding the one framework. |
| MeasurementId / MeasurementIdentifier | MeasurementIdentifier retained | One local text code links planned definitions, results and formula references within the owning executable WorkStep. Planned codes are unique within that step; repeated readings may share the code. MeasurementIdentifierId remains the reusable definition UUID lookup. |
| MeasurementText / TextValue | TextValue retained | Store text/custom answers on the individual measurement-result row using TextValue. Preserve original answers and definition context; MeasurementNotApplicable remains distinct from an absent or empty result. |
| Material-demand / fulfilment status | MaterialPartRequest fulfilment is authoritative; demand summary is derived | Stored request lifecycle for ResourceRequest rows only: Requested, Cancelled or Fulfilled. For MaterialDemand rows expose a read-only summary derived from linked MaterialPartRequest fulfilment records and verified quantities; do not allow a second independently editable demand status. Fulfilled requires verified net fulfilled quantity covering the required Quantity; partial supply remains Requested. Cancelled requires an explicitly cancelled demand or cancellation of all unfulfilled requirement with no remaining active request. Otherwise the summary is Requested. Allocation, ordering and a Closed request alone do not prove fulfilment; preserve PreStepCloseStatus and transaction evidence when work-step closure changes request status. ResourceRequest Fulfilled requires confirmed delivery of the requested resource service, rather than allocation alone. HTML review decision; backend / database adoption pending complete review. A demand may have multiple fulfilment requests. Calculate net fulfilled quantity using valid issued/serviced transactions after returns/reversals. Keep detailed Open/Allocated/Ordered/Serviced/Closed/Cancelled states on fulfilment requests; do not flatten them into independently editable demand states. Derived summaries refresh after transactions, cancellation, close and reopen. |
| FailureConfirmed / confirmation evidence | FailureConfirmation entry is authoritative | Remove the independently editable failure-confirmation Boolean. Confirmation is established by a valid FailureConfirmation entry linked through WorkStepId, with StaffMemberId, ActionEndDate and ActionText recording who, when and what was confirmed. Corrections invalidate/supersede evidence with audit history. A legacy true value without evidence remains unresolved historical data; never invent a signer or time. HTML review decision; backend / database adoption pending complete review. |
| ReleasedToService / release records / Released state | Release records are authoritative; WorkStatus reflects validated release | Remove the independently editable release Boolean. Determine release from valid, active, authorized release/sign records for the correct aircraft/component, work and quantity scope. Partial release does not release the whole scope; revoked/superseded records do not count. WorkStatus.Released is a validated projection of this evidence, not a second editable release assertion. Completion or a signature of another kind cannot imply release. HTML review decision; backend / database adoption pending complete review. Keep ReleaseSign only as legacy sign/reference text; it must not independently authorize or assert release. Link/import it to validated release evidence during adoption, preserving unverified historical text without upgrading its meaning. |
| CloseWorkStep / completion transition | One complete-work command; no persisted command Boolean | Keep CloseWorkStep only as a transient request-command option, not a stored WorkStep property. The option and the direct complete-work endpoint invoke the same lifecycle validation and atomic transition into WorkStatus.Completed. Persist the signed action and transition audit; retries must not duplicate evidence. Quality approval, release and final administrative closure remain separately validated transitions in the same WorkStatus lifecycle. HTML review decision; backend / database adoption pending complete review. |
| Troubleshooting / CriticalEvent control | Requirement on CriticalEvent; performance in execution evidence | Manage the troubleshooting requirement through CriticalEvent.ControlOptions.RequiresTroubleshooting selected by CriticalEventId. Record actual troubleshooting and its outcome in the linked execution/component-removal action using ActionText and existing component identity fields. Preserve the legacy removal troubleshooting marker as historical action evidence. Selecting a requirement does not prove work was performed, and performed work must not create a requirement automatically. There is no second editable troubleshooting Boolean on WorkStep. HTML review decision; backend / database adoption pending complete review. |
| HeaderSpecialCode / SpecialCode | SpecialCode retained | Merge the header/reference special code into SpecialCode. Preserve scope and source provenance. If legacy codes differ for the same owning step, reconcile them explicitly or retain separate linked reference rows; never overwrite, concatenate into an ambiguous code or truncate historical values. HTML review decision; backend / database adoption pending complete review. |
| PlannedManpower / EstimatedManHours | EstimatedManHours retained as Decimal person-hours | Merge planned labor effort into EstimatedManHours. Current creation code populates PlannedManpower from task/repository estimated man-hours, so the retained unit is person-hours. Convert finite Single values to Decimal explicitly, preserving null/zero and documented precision. Reconcile differing estimates; do not sum duplicate estimates or reinterpret genuine legacy headcount as hours. Staff headcount belongs to a staff resource request Quantity. HTML review decision; backend / database adoption pending complete review. |
Component actions and identity combinations
HTML proposal only. Existing backend validation and movement behavior are unchanged; unknown identities and extended actions await implementation after complete review.
Keep EntryType for the overall entry category and ComponentActionType for the component operation. Use separate source and destination child WorkStep rows linked to the same owning action through OwnerRecordId and WorkStepId. Each row uses the standard ConfigurationMasterId, ConfigurationId, PartId and RotableId fields, with ComponentActionRole identifying Source/Destination or Removed/Installed. Multiple units use additional separate child rows. PartNumber remains a snapshot; UndefinedPartNumber and UndefinedRotableNumber capture unresolved identities. The four From/To configuration and part fields are Dropped in this HTML proposal.
| Case | Part identity | Rotable identity | Handling |
|---|---|---|---|
| Saved part and saved unit | PartId (derive/validate) | RotableId | Both master records exist; unit must belong to the selected part. |
| Saved part; undefined unit | PartId | UndefinedRotableNumber | Record unit reference plus known serial/batch; resolve the unit before physical mutation. |
| Undefined part and unit | UndefinedPartNumber | UndefinedRotableNumber | Retain supplied identity evidence; resolve both masters before physical mutation. |
| Saved nonserialized part | PartId | Neither unit field | Allowed for part-only/nonserialized actions with a positive quantity; no artificial rotable required. |
| Undefined nonserialized part | UndefinedPartNumber | Neither unit field | Capture planning/identification details; resolve the part before material fulfillment or physical mutation. |
| Saved unit only supplied | Derive PartId from RotableId | RotableId | Do not require repeated part entry; reject any conflicting part identity. |
| Saved ID and undefined text together | PartId + UndefinedPartNumber | RotableId + UndefinedRotableNumber | Reject competing input identities for the same role; display/history snapshots are separate. |
| Undefined part with saved unit | UndefinedPartNumber | RotableId | Derive the saved part from the unit; reject conflicting undefined part input. |
| No usable part or unit identity | Neither | Neither or undefined unit only | Incomplete draft only; require a resolvable saved unit or a saved/undefined part identity before accepting the component action. |
Proposed validation and action rules
- Proposed actions: Install, Remove, Update, Replace, Swap, Inspect, Repair, Overhaul, Test, Service, Adjust, Modify, Calibrate, Other. Preserve existing Install=1 and Remove=2; explicitly assign new values during adoption.
- Require ComponentActionType for component-operation entries and ComponentActionRole for their component-identity child rows. EntryType still controls time, measurement, signing and other non-component entries.
- Use either PartId or UndefinedPartNumber for part identity, and either RotableId or UndefinedRotableNumber when a serialized unit is required. Resolve known rotables to their saved PartId; reject mismatches, empty UUIDs and whitespace-only undefined numbers.
- Install requires the destination position; Remove requires the source position. Update/Inspect/Repair/Overhaul/Test/Service/Adjust/Modify/Calibrate do not imply an installation or removal by themselves.
- Replace uses Removed and Installed child identity rows under the same owning action. Swap requires complete linked source/destination movements for both units and positions; validate and apply the operation atomically.
- Where quantity applies it must be positive; a row selecting an individual serialized unit represents one unit. Preserve applicable material-demand and resource-request quantity rules.
- Unresolved numbers may be captured for planning or identification. Final stock/configuration mutation requires resolved master IDs, position compatibility, action authorization and execution validation; undefined text is not a saved inventory link.
- Resolve identities through a reviewed operation that preserves the originally recorded text and audit evidence. Define paired-action ownership and duplicate checks before implementation; backend behavior is unchanged today.
- Represent source and destination as separate linked WorkStep rows with the same standard identity fields. Never collapse both sides into a single field value on one row. A remove-only action needs its source row; an install-only action needs its destination row.
- Software changes also use source and destination rows with PartId for the old and new software part and ConfigurationId for the applicable software position. Preserve source/target distinction, required target, different-part checks and allowed-position validation during adoption.
- Backfill each legacy FromConfigurationId/FromPartId and ToConfigurationId/ToPartId pair into its corresponding source or destination row. Preserve existing identity and history, link the paired rows, and validate paired replacement/swap/software changes atomically before retiring legacy columns. Backend/database implementation remains deferred.
Template steps in WorkStep
WorkTemplateItem is Dropped in this proposal. Backend classes and physical tables remain unchanged pending complete review.
WorkTemplateMaster owns reusable TemplateStep-role WorkStep rows through WorkTemplateMasterId. Template steps can have parent/child instructions and structured planned material/resource demand. Issuing creates independent executable WorkStep rows owned by a WorkorderMaster, with copied definitions and demands and preserved template/source revision provenance.
| Former item field | WorkStep treatment | Preserved behavior |
|---|---|---|
| WorkTemplateItem.Id | Id | Preserve stable row identity or an explicit identity mapping if IDs collide. |
| WorkTemplateItem.WorkTemplateRevisionId | WorkTemplateMasterId + preserved revision provenance | Resolve revision to its owning template. Master FK does not replace exact controlled revision history; do not reactivate the previously Dropped revision field. |
| WorkTemplateItem.ParentItemId | OwnerRecordId | Keep nested TemplateStep rows in the same template/revision context; remap parents when issuing. |
| WorkTemplateItem.RepositoryWorkStepRevisionId | Controlled source relationship / history | Preserve the referenced repository instruction revision via explicit source relationship/history during adoption; no replacement revision-ID column is approved here. |
| WorkTemplateItem.Sequence | WorkStepNumber | Positive whole-number text, ordered numerically; preserve sibling order and hierarchy. |
| WorkTemplateItem.Title | ActionTitle | Required title on each TemplateStep row; preserve the existing item title capacity. |
| WorkTemplateItem.InstructionHtml | ActionText | Retain complete formatted instructions and review storage/rendering capacity before moving data. |
| WorkTemplateItem.PartRequestsJson | MaterialDemand child WorkStep rows | Expand every requested part, quantity and attribute into structured planned demand rows owned by the template step. |
| WorkTemplateItem.ResourceRequestsJson | ResourceRequest child WorkStep rows | Expand planned manpower, tools, facilities and timing/quantity details into structured child rows. |
| WorkTemplateItem.SystemAuditId | SystemAuditId / source audit history | Preserve audit references and historical evidence. |
| WorkTemplateItem.UpdateId | UpdateId | Preserve update-chain identity and source history. |
Ownership and issuing rules
- WorkTemplateMasterId is a proposed foreign key to WorkTemplateMaster.Id. Require a saved owner for TemplateStep rows. Restrict deletion of referenced masters until definition ownership and historical use are reconciled.
- Append TemplateStep to RecordKind without changing existing role values. Exclude definition rows from execution progress, live booking, stock movements and signing queries.
- TemplateStep children use OwnerRecordId for hierarchy; planned material/resource rows use WorkStepId to identify their owning definition. Validate same template context, allowed role pairs, no self/cyclic parents and ordering.
- Issuing clones the full selected instruction tree and its planned demands, creates new execution IDs, remaps parents, and assigns the owning workorder. Never use the same row for reusable instructions and actual execution.
- Preserve exact approved template/repository revision and copied content for issued work. WorkTemplateRevisionId remains Dropped in the WorkStep proposal; replacement revision provenance remains an adoption review item rather than silently restoring that field.
- Unpack legacy parts/resources JSON without dropping quantities, units, request attributes or repeated rows. The previously Dropped WorkStep JSON fields remain Dropped.
- Retire WorkTemplateItem model/table only after the reviewed row migration, ownership/provenance mapping and issuing/query adaptation are implemented. This update changes HTML/metadata only.
Dropped fields and later review
These fields are excluded from the proposed inventory. Backend/database changes remain deferred.
| Field | Decision | Follow-up | Review note |
|---|---|---|---|
ActiveRevisionId | Dropped | Later review | Drop ActiveRevisionId from the unified WorkStep proposal. Review repository active-revision selection, publication and revision-history behavior later before backend/database adoption. |
AircraftLocationCode | Dropped | Replaced by three lookups | Replace AircraftLocationCode with ConfigurationMasterId, existing ConfigurationId and LocationReferenceId (all nullable UUID lookups). Map legacy text and validate matching master/position/location during later adoption. Backend/database changes deferred. |
AircraftTailId | Dropped | Drop AircraftTailId from the unified WorkStep HTML proposal; backend/database removal deferred until complete project review. | |
AppliedRepositoryRevisionId | Dropped | Future review | Drop AppliedRepositoryRevisionId from the unified WorkStep proposal. Review applied-revision traceability, section-specific planning revision references and synchronization behavior in future before backend/database adoption. |
CalculatedValue | Dropped | Under review | Drop CalculatedValue from the unified WorkStep proposal. Formula calculation, result storage and limit evaluation remain under review before backend/database adoption. |
CertificationNumber | Dropped | Replaced by CertifiedHumanResourceId | Replace CertificationNumber with nullable UUID CertifiedHumanResourceId lookup to StaffMember in Human Resources. Preserve credential history and reconcile legacy certificate/licence text during later implementation. Backend/database adoption deferred. |
MaintenancePhase | Dropped | Task supplies phase; preserve historical assignments and phase rules during later implementation | Drop the separate MaintenancePhase field from the unified WorkStep proposal because the selected task will supply the maintenance phase. During later implementation, map historical phase codes and assignments to task-owned definitions and preserve aircraft/component applicability, revision context and related-phase/counterpart behavior. Task-owned phase selection and remaining phase relationships require implementation review; backend/database adoption remains pending complete review.
|
ColorCode | Dropped | Phase colours defined in project code | Drop ColorCode from the unified WorkStep proposal. Define phase display colours directly in project code, keyed by MaintenancePhase, rather than storing a configurable colour field. Backend/database removal and colour implementation remain deferred. |
ComponentTaskFormulaId | Dropped | Future review | Drop ComponentTaskFormulaId from the unified WorkStep proposal. Review common formula definitions, taskcard-based calculation and formula-result traceability in future, together with the deferred CalculatedValue design. Backend/database removal deferred until complete project review. |
CrsReference | Dropped | Drop CrsReference from the unified WorkStep HTML proposal; backend/database removal deferred until complete project review. | |
ElbReference | Dropped | Drop ElbReference from the unified WorkStep HTML proposal; backend/database removal deferred until complete project review. | |
FailureConfirmedAt | Dropped | Reuse ActionEndDate on failure-confirmation entry | Remove FailureConfirmedAt as a separate WorkStep field. Reuse ActionEndDate on a dedicated FailureConfirmation execution entry linked to the owning WorkStep. Preserve who confirmed the failure and when without overwriting the executable step, allocation or certification records. Backend/database adoption deferred. |
FailureConfirmedByStaffId | Dropped | Reuse StaffMemberId on failure-confirmation entry | Remove FailureConfirmedByStaffId as a separate WorkStep field. Reuse StaffMemberId on a dedicated FailureConfirmation execution entry linked to the owning WorkStep. Preserve who confirmed the failure and when without overwriting the executable step, allocation or certification records. Backend/database adoption deferred. |
FailureDescription | Dropped | Reuse ActionText on failure-confirmation entry | Remove FailureDescription as a separate WorkStep field. Reuse ActionText on the linked FailureConfirmation entry, preserving legacy failure text and the main step instructions. Backend/database adoption deferred. |
FromConfigurationId | Dropped | Separate source and destination WorkStep rows | Drop FromConfigurationId. Use ConfigurationId on a separate source WorkStep row linked to the same owning action through OwnerRecordId and WorkStepId. ComponentActionRole distinguishes source/destination or removed/installed rows. Preserve both sides and their history as separate rows during deferred backend/database adoption. |
ToConfigurationId | Dropped | Separate source and destination WorkStep rows | Drop ToConfigurationId. Use ConfigurationId on a separate destination WorkStep row linked to the same owning action through OwnerRecordId and WorkStepId. ComponentActionRole distinguishes source/destination or removed/installed rows. Preserve both sides and their history as separate rows during deferred backend/database adoption. |
FromPartId | Dropped | Separate source and destination WorkStep rows | Drop FromPartId. Use PartId on a separate source WorkStep row linked to the same owning action through OwnerRecordId and WorkStepId. ComponentActionRole distinguishes source/destination or removed/installed rows. Preserve both sides and their history as separate rows during deferred backend/database adoption. |
ToPartId | Dropped | Separate source and destination WorkStep rows | Drop ToPartId. Use PartId on a separate destination WorkStep row linked to the same owning action through OwnerRecordId and WorkStepId. ComponentActionRole distinguishes source/destination or removed/installed rows. Preserve both sides and their history as separate rows during deferred backend/database adoption. |
HeaderAreaCode | Dropped | Replaced by LocationReferenceId lookup | Replace HeaderAreaCode with the standard LocationReferenceId UUID lookup on WorkStep. Resolve the legacy area, panel or zone code against the appropriate LocationReference and aircraft/component context. Preserve distinct locations through separate linked WorkStep rows when necessary; do not overwrite differing references. Backend/database adoption deferred. |
HeaderPanelCode | Dropped | Replaced by LocationReferenceId lookup | Replace HeaderPanelCode with the standard LocationReferenceId UUID lookup on WorkStep. Resolve the legacy area, panel or zone code against the appropriate LocationReference and aircraft/component context. Preserve distinct locations through separate linked WorkStep rows when necessary; do not overwrite differing references. Backend/database adoption deferred. |
HeaderZoneCode | Dropped | Replaced by LocationReferenceId lookup | Replace HeaderZoneCode with the standard LocationReferenceId UUID lookup on WorkStep. Resolve the legacy area, panel or zone code against the appropriate LocationReference and aircraft/component context. Preserve distinct locations through separate linked WorkStep rows when necessary; do not overwrite differing references. Backend/database adoption deferred. |
IncludeOnCalibrationReport | Dropped | Further review | Mark IncludeOnCalibrationReport Dropped from the WorkStep proposal, with further review of measurement report inclusion and reporting configuration before implementation. Backend/database adoption deferred. |
IncludeOnReport | Dropped | Further review | Mark IncludeOnReport Dropped from the WorkStep proposal, with further review of measurement report inclusion and reporting configuration before implementation. Backend/database adoption deferred. |
IsActive | Dropped | Backend / database adoption pending complete review | Mark IsActive Dropped from the unified WorkStep proposal. Backend/database adoption remains deferred until complete project review. |
IsDocumentRequirement | Dropped | Backend / database adoption pending complete review | Mark IsDocumentRequirement Dropped from the unified WorkStep proposal. Backend/database adoption remains deferred until complete project review. |
IsLiveBookingActive | Dropped | Later review | Mark IsLiveBookingActive Dropped from the unified WorkStep proposal, with later review of live labor-booking state and its relationship to linked StaffTimeBooking records. Backend/database adoption deferred until complete project review. |
IsTool | Dropped | Later review | Mark IsTool Dropped from the unified WorkStep proposal, with later review of tool identification and material-demand classification. Backend/database adoption deferred until complete project review. |
LowerLimit | Dropped | Use MeasurementIdentifierId → MeasurementIdentifier.LowerLimit | Drop the standalone WorkStep LowerLimit field. Reference MeasurementIdentifier.LowerLimit through WorkStep.MeasurementIdentifierId for the reusable measurement definition. Map legacy numeric limits into the linked definition, reconcile differing values and preserve the limit applicable to historical results during later implementation. A numeric limit is not a lookup UUID. Backend/database adoption deferred. |
MeasurementType | Dropped | Use MeasurementIdentifierId → common measurement definition | Drop the standalone WorkStep MeasurementType. Manage numerical/custom classification through the linked MeasurementIdentifier definition, extending its reviewed metadata where needed. Preserve the existing Numerical and Custom distinction and allowed-answer behavior during later adoption; backend/database implementation remains pending complete review.
|
MeasurementUnit | Dropped | Use MeasurementIdentifierId → MeasurementIdentifier.Unit | Drop the duplicate WorkStep MeasurementUnit. Use Unit and UnitGroup on the linked MeasurementIdentifier definition. Reconcile legacy unit text, units and any conversions before adoption, and preserve the unit applicable to historical measured results. Backend/database implementation remains pending complete review.
|
MeasurementValue | Dropped | Use MeasurementIdentifierId → common measurement framework; result storage pending implementation | Drop the standalone WorkStep MeasurementValue field together with NumericValue. Manage measurement values through the common MeasurementIdentifier framework selected by MeasurementIdentifierId. Define per-workstep result storage/association during later implementation; the current reusable MeasurementIdentifier definition does not store individual measured readings. Preserve and reconcile existing readings, their worksteps, units and applicable historical definitions before retiring either value column. Backend/database adoption remains pending complete review.
|
MeasurementsJson | Dropped | Use structured measurements linked through MeasurementIdentifierId | Drop the bundled MeasurementsJson field. Represent each repository/revision measurement using structured measurement rows linked to MeasurementIdentifier rather than an opaque JSON bundle. Preserve every legacy measurement, its ordering and applicable repository revision during deferred adoption; selecting a single identifier must not discard multiple measurement definitions or results. Backend/database implementation remains pending complete review.
|
MeasurementsPlanningRevisionId | Dropped | Use MeasurementIdentifierId; preserve planning/revision traceability | Drop the separate MeasurementsPlanningRevisionId lookup from WorkStep. Use the common MeasurementIdentifier lookup for measurement definitions. Review how each step retains the applicable planned definition/version and immutable repository/planning history before removing the legacy revision reference; the reusable definition alone does not capture a historical planning snapshot. Backend/database implementation remains pending complete review.
|
MelCategory | Dropped | Use DeferredDefectId → DeferredDefectMaster → DeferredReferenceItem.MelCategory | Drop the standalone WorkStep MelCategory text. Associate the step with a deferred-defect case through DeferredDefectId and obtain the MEL category from that case's linked DeferredReferenceItem.MelCategory. Map existing category text to the correct deferral case and preserve any historically applicable category before retirement; category text alone cannot identify a deferred defect or be copied into a UUID. Backend/database adoption remains pending complete review.
|
NumericValue | Dropped | Use MeasurementIdentifierId → common measurement framework; result storage pending implementation | Drop the standalone WorkStep NumericValue field. Manage measurement definitions and values through the common MeasurementIdentifier framework selected by MeasurementIdentifierId, as requested. The current MeasurementIdentifier model holds reusable definition metadata rather than per-workstep observations; the result association/storage design remains pending later implementation. Preserve each actual reading with its workstep, measurement, applicable unit/definition version and history. Do not overwrite one shared definition with readings from different steps or copy a decimal reading into the UUID lookup. Reconcile existing NumericValue and MeasurementValue data before retirement. Backend/database adoption remains pending complete review.
|
OccurrenceCode | Dropped | Retain occurrence UUID identity; backend / DB adoption pending complete review | Drop the separate OccurrenceCode business-reference field from the unified WorkStep proposal. Retain the execution occurrence Id and existing WorkStepExecutionOccurrenceId relationships so repeated executions remain distinct. Adapt occurrence creation, API/display references, required-field validation and the unique OccurrenceCode index during later implementation; preserve or map any historical code references before retiring storage. Backend/database adoption remains pending complete review.
|
OpenedAt | Dropped | Use the original Created audit entry → RecordedAt | Drop the separate execution-occurrence OpenedAt timestamp. In the current opening flow it receives the same UTC timestamp as the original Created audit entry. Use that creation entry's RecordedAt for opening/creation display and occurrence sorting; do not use a later update's audit timestamp. Preserve or backfill historical opening times where creation audit evidence is absent or differs. Update occurrence creation, queries and required-field validation during deferred adoption. ActionStartDate and BookingStart retain their separate work-start and labor-booking meanings. Backend/database adoption remains pending complete review.
|
PartRequestsJson | Dropped | Structured material-demand / part-request records; implementation pending | Drop the bundled repository-revision PartRequestsJson field. Represent each planned part request through structured material-demand / part-request records linked to its owning workstep or repository revision during later adoption. Preserve all requested parts, quantities, attributes, ordering and applicable repository revision, and maintain links to MaterialPartRequest fulfillment. Adapt repository planning-copy and revision-cloning behavior before retiring JSON storage. Backend/database adoption remains pending complete review.
|
PartsPlanningRevisionId | Dropped | Preserve parts-planning source/revision traceability; implementation pending | Drop the separate PartsPlanningRevisionId lookup from WorkStep. During later adoption, retain the source repository revision and planning-copy provenance with the structured part/material demand or another reviewed common revision mechanism. Preserve which revision supplied existing part requirements and the behavior of selective parts planning synchronization; do not lose immutable planning history or overwrite independently edited demand. Backend/database adoption remains pending complete review.
|
PassFailValue | Dropped | Use MeasurementIdentifierId → common measurement framework; result storage pending | Drop the standalone WorkStep PassFailValue field. Manage pass/fail definitions and allowed answers through the common MeasurementIdentifier framework selected by MeasurementIdentifierId. Define per-workstep result association/storage during later implementation; preserve each actual outcome, including null/no recorded outcome, and explicitly reconcile legacy Boolean values with the chosen allowed-answer labels. The shared definition's Values lists allowed answers and does not store each step's selected result. Preserve historical outcomes before retiring storage. Backend/database adoption remains pending complete review.
|
PhaseCode | Dropped | Task supplies phase; preserve historical assignments and phase rules during later implementation | Drop standalone PhaseCode text from the unified WorkStep proposal because the selected task will supply the maintenance phase. Map repository and executable step phase assignments to task-owned definitions during later adoption; preserve legacy code mappings, revision context, aircraft/component applicability and related-phase counterpart generation. Update repository defaults, phase matching and counterpart creation before retiring storage. Backend/database adoption remains pending complete review.
|
LocationId | Dropped | Merged into LocationReferenceId; preserve existing UUIDs | Drop the duplicate LocationId name from the unified WorkStep proposal by renaming/merging it into LocationReferenceId. Both names target the same LocationReference model. Carry existing UUIDs and the relationship into the retained field; reconcile legacy area/panel/zone/location text and preserve distinct locations during later adoption. Update API, graph-link and validation references together. Backend/database adoption remains pending complete review.
|
Name | Dropped | Merged into ActionTitle; backend / DB adoption pending | Merge the separate Name property into the existing ActionTitle field. Preserve WorkStepPhase.Name as the title of its Phase-role row; preserve existing action, repository and measurement titles on their own rows. Reconcile any conflicting values during later adoption. The original field remains documented here for review.
|
NextRevisionNumber | Dropped | Review replacement revision-number allocation before backend / DB adoption | Drop NextRevisionNumber from the unified WorkStep proposal. The current repository implementation uses this counter to allocate new revision numbers. Before removing backend storage, implement revision-number allocation that remains unique and safe under concurrent revision creation, preserves existing revision numbers and immutable revision history, and adapts repository create/revise flows. Backend/database adoption remains pending complete review.
|
PriceBookCode | Dropped | Later review | Drop PriceBookCode from the unified WorkStep proposal and review its need later. This optional free-text pricing-catalogue reference is currently copied into material requests; it does not retrieve prices or calculate costs. Preserve existing values and review ownership by purchasing, quotations or material requests before backend/database adoption. No replacement field is approved in this decision; backend/database changes remain pending complete review.
|
RelatedPhaseId | Dropped | Review task-owned related-work planning before backend / DB adoption | Drop RelatedPhaseId from the unified WorkStep proposal following the decision that the task handles phases. The current phase relationship can automatically generate a related counterpart workstep during planning. Preserve existing phase links, generated counterpart identities and historical relationships; review task-owned related-work planning and adapt automatic generation before retiring the relationship. This decision does not drop RestorationCounterpartStepId or approve a replacement field. Backend/database adoption remains pending complete review.
|
RepositoryWorkStepId | Dropped | Review repository ownership and template provenance before backend / DB adoption | Drop RepositoryWorkStepId from the unified WorkStep proposal. Currently, repository revision rows use it to identify their template owner and linked executable rows use it to identify their source template. Preserve revision ownership, linked-template provenance and historical relationships; review a replacement relationship and adapt repository revision queries, linked-step creation and synchronization before retiring storage. AppliedRepositoryRevisionId remains unchanged; its existing meaning does not automatically replace revision-to-template ownership. Backend/database adoption remains pending complete review.
|
RequiredProbabilityPercent | Dropped | Review material-demand probability handling before backend / DB adoption | Drop RequiredProbabilityPercent from the unified WorkStep proposal. The current field records a 0–100 material-demand probability and is copied into material requests. Preserve existing probability values and review their ownership and treatment in material-demand planning and fulfillment before retiring WorkStep storage; do not silently reinterpret probability as Quantity. No move to CriticalEvent is approved. Backend/database adoption remains pending complete review.
|
RequiresCalibration | Dropped | Use MeasurementIdentifier calibration requirement; adoption pending complete review | Drop the duplicate RequiresCalibration field from the unified WorkStep proposal. The reusable MeasurementIdentifier already defines RequiresCalibration; review using that definition through MeasurementIdentifierId. Reconcile any differing legacy step-specific values and preserve the definition/version applicable to historical measurements before retiring WorkStep storage. Calibration-evidence validation and backend/database adoption remain pending complete review. No move to CriticalEvent is approved.
|
RequiresEngineChange | Dropped | Moved to CriticalEvent.RequiresEngineChange; select through WorkStep.CriticalEventId | Move RequiresEngineChange from the unified WorkStep proposal to CriticalEvent as a required Boolean category flag, default false. Select the applicable category through WorkStep.CriticalEventId. Preserve existing per-step or per-revision requirements and reconcile category combinations during later adoption. Preserve historical independent-inspection and operational requirements when reusable categories change. Backend/database adoption remains pending complete review.
|
RequiresIndependentInspection | Dropped | Moved to CriticalEvent.RequiresIndependentInspection; select through WorkStep.CriticalEventId | Move RequiresIndependentInspection from the unified WorkStep proposal to CriticalEvent as a required Boolean category flag, default false. Select the applicable category through WorkStep.CriticalEventId. Preserve existing per-step or per-revision requirements and reconcile category combinations during later adoption. Preserve historical independent-inspection and operational requirements when reusable categories change. Backend/database adoption remains pending complete review.
|
RequiresRampActivity | Dropped | Moved to CriticalEvent.RequiresRampActivity; select through WorkStep.CriticalEventId | Move RequiresRampActivity from the unified WorkStep proposal to CriticalEvent as a required Boolean category flag, default false. Select the applicable category through WorkStep.CriticalEventId. Preserve existing per-step or per-revision requirements and reconcile category combinations during later adoption. Preserve historical independent-inspection and operational requirements when reusable categories change. Backend/database adoption remains pending complete review.
|
RequiresTaxi | Dropped | Moved to CriticalEvent.RequiresTaxi; select through WorkStep.CriticalEventId | Move RequiresTaxi from the unified WorkStep proposal to CriticalEvent as a required Boolean category flag, default false. Select the applicable category through WorkStep.CriticalEventId. Preserve existing per-step or per-revision requirements and reconcile category combinations during later adoption. Preserve historical independent-inspection and operational requirements when reusable categories change. Backend/database adoption remains pending complete review.
|
RequiresWeightAndBalance | Dropped | Moved to CriticalEvent.RequiresWeightAndBalance; select through WorkStep.CriticalEventId | Move RequiresWeightAndBalance from the unified WorkStep proposal to CriticalEvent as a required Boolean category flag, default false. Select the applicable category through WorkStep.CriticalEventId. Preserve existing per-step or per-revision requirements and reconcile category combinations during later adoption. Preserve historical independent-inspection and operational requirements when reusable categories change. Backend/database adoption remains pending complete review.
|
ResourceRequestsJson | Dropped | Preserve repository resource-request planning and revision history during later adoption | Drop ResourceRequestsJson from the unified WorkStep proposal. Preserve existing resource-request payloads and their repository revision context, including resource types, quantities, requested windows and other planning details. Review carrying these through structured resource-request records and adapt repository revision creation, planning copy and synchronization before retiring JSON storage. Backend/database adoption remains pending complete review.
|
ResourcesPlanningRevisionId | Dropped | Preserve resource-planning revision provenance during later adoption | Drop ResourcesPlanningRevisionId from the unified WorkStep proposal. Preserve existing resource-planning revision links and their history, and review how structured resource-request records or the shared revision design retain this provenance. Adapt planning copy and synchronization to preserve independently edited resource requests before retiring the relationship. Backend/database adoption remains pending complete review.
|
Revision | Dropped | Review replacement repository version identification before backend / DB adoption | Drop Revision from the unified WorkStep proposal. Preserve existing repository revision numbers, immutable revision identities and the association of executable steps with the version applied. Review replacement version identification and adapt revision allocation, display, queries and history before retiring storage. Backend/database adoption remains pending complete review.
|
RevisionStatus | Dropped | Review replacement repository revision lifecycle before backend / DB adoption | Drop RevisionStatus from the unified WorkStep proposal. Preserve existing New, Active, Inactive and Superseded meanings and historical states. Review replacement lifecycle control and adapt activation, previous-version supersession and active-revision selection before retiring storage. Backend/database adoption remains pending complete review.
|
IsShopcardCollected | Dropped | Replaced by ShopcardCollectionStatus; preserve collection evidence in audit history | Replace the separate collection Boolean with WorkStep.ShopcardCollectionStatus. Preserve existing collected values and reconcile with legacy header flags during adoption. Backend/database adoption remains pending complete review.
|
ShopcardCollectedAt | Dropped | Replaced by ShopcardCollectionStatus; preserve collection evidence in audit history | Drop the separate collection timestamp property in favor of a single ShopcardCollectionStatus field. Preserve each existing collection timestamp and its original evidence in audit history, backfilling collection events when the history lacks them; the enum itself does not store a timestamp. Backend/database adoption remains pending complete review.
|
SoftwareChangesJson | Dropped | Preserve software-change plans and repository revision history during later adoption | Drop SoftwareChangesJson from the unified WorkStep proposal. Preserve existing software-change payloads and their repository revision context, including target software/part references, change references and planning details. Review carrying these through structured software-change plan records and adapt repository revision creation, planning copy and synchronization before retiring JSON storage. Backend/database adoption remains pending complete review.
|
SoftwarePlanningRevisionId | Dropped | Preserve software-planning revision provenance during later adoption | Drop SoftwarePlanningRevisionId from the unified WorkStep proposal. Preserve existing software-planning revision links and historical provenance. Review how structured software-change plan records or the shared revision design retain this provenance, and adapt planning copy and synchronization to preserve independently edited plans before retiring the relationship. Backend/database adoption remains pending complete review.
|
SpecialEquipmentRequest | Dropped | Review structured resource requests; preserve legacy equipment-request text during adoption | Drop SpecialEquipmentRequest from the unified WorkStep proposal. Preserve the existing optional special-equipment request text and its 500-character maximum for historical review. Review mapping the text to structured resource requests, including RequestTitle and RequestDescription where appropriate, without treating free text as an equipment selection or reservation. Backend/database adoption remains pending complete review.
|
SpecialEquipmentRequest2 | Dropped | Review structured resource requests; preserve legacy equipment-request text during adoption | Drop SpecialEquipmentRequest2 from the unified WorkStep proposal. Preserve the existing optional special-equipment request text and its 500-character maximum for historical review. Review mapping the text to structured resource requests, including RequestTitle and RequestDescription where appropriate, without treating free text as an equipment selection or reservation. Backend/database adoption remains pending complete review.
|
TaskControlProfileId | Dropped | Replaced by CriticalEventId; task controls managed on CriticalEvent | Replace the WorkStep TaskControlProfileId lookup with the existing proposed CriticalEventId lookup. CriticalEvent will carry the applicable task controls through proposed ControlOptions. Preserve selected profile option combinations, inherited taskcard/maintenance-task controls and historical requirements when mapping categories during later adoption. Adapt active-selection validation and workstep closure checks for independent inspection, double inspection and reinspection without weakening the required signed evidence. This decision retires the WorkStep lookup only; other TaskControlProfile references and its physical table are not retired by this review. Backend/database adoption remains pending complete review.
|
ToolRegistrationId | Dropped | Review registered-tool allocation linkage before backend / DB adoption | Drop ToolRegistrationId from the unified WorkStep proposal. Preserve existing resource assignments to specific ToolRegistration records, their identities, time intervals and historical calibration context. Review replacement tool-allocation linkage and adapt resource assignment validation, resource resolution, foreign keys and uniqueness rules before retiring this property. No replacement field is approved by this decision. Backend/database adoption remains pending complete review.
|
Unit | Dropped | Use MeasurementIdentifier.Unit through MeasurementIdentifierId; preserve historical measurement units | Drop the duplicate Unit field from the unified WorkStep proposal. Obtain this measurement definition value from MeasurementIdentifier.Unit through MeasurementIdentifierId. Reconcile differing legacy step and identifier values explicitly and preserve the unit/group and definition version applicable to each historical reading so later changes to a reusable definition do not reinterpret recorded values. Adapt measurement planning, input and validation during later adoption. Backend/database adoption remains pending complete review.
|
UnitGroup | Dropped | Use MeasurementIdentifier.UnitGroup through MeasurementIdentifierId; preserve historical measurement units | Drop the duplicate UnitGroup field from the unified WorkStep proposal. Obtain this measurement definition value from MeasurementIdentifier.UnitGroup through MeasurementIdentifierId. Reconcile differing legacy step and identifier values explicitly and preserve the unit/group and definition version applicable to each historical reading so later changes to a reusable definition do not reinterpret recorded values. Adapt measurement planning, input and validation during later adoption. Backend/database adoption remains pending complete review.
|
UpliftPartId | Dropped | Merged into PartId; backend / DB adoption pending | Replace UpliftPartId with the existing PartId field on the same uplift execution row. Preserve original uplift values, reconcile conflicts explicitly and adapt API/UI validation during later adoption. The original field remains documented here for review; backend/database changes remain pending complete review.
|
UpliftQuantity | Dropped | Merged into Quantity; backend / DB adoption pending | Replace UpliftQuantity with the existing Quantity field on the same uplift execution row. Preserve original uplift values, reconcile conflicts explicitly and adapt API/UI validation during later adoption. The original field remains documented here for review; backend/database changes remain pending complete review.
|
UpperLimit | Dropped | Use MeasurementIdentifier.UpperLimit through MeasurementIdentifierId; preserve historical limit definitions | Drop the duplicate UpperLimit field from the unified WorkStep proposal. Obtain the measurement upper acceptance limit from MeasurementIdentifier.UpperLimit through MeasurementIdentifierId, together with the applicable limit type and unit. Reconcile differing legacy step and identifier limits explicitly and preserve the definition/version applicable to historical readings so later master changes do not reinterpret prior acceptance decisions. Adapt measurement planning and result/closure validation during later adoption. Backend/database adoption remains pending complete review.
|
WithinLimits | Dropped | Derive per-reading assessment using MeasurementIdentifierId and the applicable definition version | Drop the standalone WithinLimits property from the unified WorkStep proposal. Assess each recorded measurement against the applicable MeasurementIdentifier limit type, lower/upper limits and unit through MeasurementIdentifierId. The outcome belongs to that individual reading; do not store one shared WithinLimits flag on the reusable identifier. Preserve existing true/false/null assessments, the measured value and the original definition/version used, and reconcile historical cases without silently recalculating them against changed master limits. Define how missing results, absent limits and custom/discrete answers are assessed; preserve an unknown/not-evaluated state when an assessment cannot be made. Measurement-result storage and validation remain pending complete review; backend/database unchanged.
|
WorkTemplateRevisionId | Dropped | Review template revision provenance before backend / DB adoption | Drop WorkTemplateRevisionId from the unified WorkStep proposal. Preserve existing executable-step and occurrence links to the work-template revision used, together with historical template contents and ownership. Review replacement revision provenance and adapt template selection, planning links and occurrence validation before retiring this relationship. No replacement field is approved by this decision. Backend/database adoption remains pending complete review.
|
WorkType | Dropped | Review task-owned aircraft/component applicability before backend / DB adoption | Drop WorkType from the unified WorkStep proposal, following the decision that tasks handle phases. Preserve existing Global, Aircraft and Component phase applicability and review how the task-owned design carries these constraints. Adapt phase planning and counterpart applicability checks before retiring storage; this decision does not remove other aircraft/component context fields. Backend/database adoption remains pending complete review.
|
WorkStepSequence | Dropped | Merged into WorkStepNumber; numeric ordering for execution rows | Merge WorkStepSequence into the single WorkStepNumber field. Preserve the existing positive execution sequence as the numeric step number; compare it numerically and derive the full owner-prefixed display label. Retain repository alphanumeric number codes, preserve old execution labels/history and reconcile mismatches during adoption. Update sequence-dependent lifecycle validation, generation and indexes before retiring this property. Backend/database adoption remains pending complete review.
|
WorkStepExecutionOccurrenceId | Dropped | Review execution grouping, ownership and sequence scope before backend / DB adoption | Drop WorkStepExecutionOccurrenceId from the unified WorkStep proposal. Preserve existing occurrence-to-step membership and distinguish repeated executions of the same taskcard, jobcard or customer requirement. Review replacement execution grouping and ownership, adapt step retrieval, sequence and lifecycle validation, graph links and access checks, and preserve historical occurrence identities before retiring this relationship. This decision does not automatically drop the occurrence records or assign all repeated runs to one workorder scope; no replacement link is approved here. Backend/database adoption remains pending complete review.
|
WorkStepResourceRequestId | Dropped | Review resource-assignment ownership and request linkage before backend / DB adoption | Drop WorkStepResourceRequestId from the unified WorkStep proposal. Preserve existing assignment-to-request membership, allocated resource identities and assignment intervals. Review replacement ownership/linkage and adapt request-scoped resource-type validation, requested-window checks, assigned-quantity limits, cancelled-request handling, uniqueness rules, access checks and deletion behavior before retiring this relationship. No replacement link is approved by this decision. Backend/database adoption remains pending complete review.
|
ExecutionStatus | Dropped | Merged into WorkStatus; implementation deferred | Merge this lifecycle field into WorkStatus. Preserve its original state and transition evidence, including physical completion versus quality/release progression; do not discard a completed-work fact when the current lifecycle state advances. HTML review decision; backend / database adoption pending complete review.
|
ShopStatus | Dropped | Merged into WorkStatus through the unified lifecycle; implementation deferred | Merge the former ShopStatus and ExecutionStatus into the single WorkStatus lifecycle. Preserve original shop states, completed-work evidence and release gates. HTML review decision; backend / database adoption pending complete review.
|
MeasurementId | Dropped | Merged into MeasurementIdentifier; backend / DB adoption pending | Merge MeasurementId into the single MeasurementIdentifier text code for measurement definitions and corresponding execution results. Preserve per-workstep uniqueness of planned codes, formula references and repeated readings; keep MeasurementIdentifierId as the separate reusable definition lookup. Backend/database adoption remains pending complete review.
|
MeasurementText | Dropped | Merged into TextValue; backend / DB adoption pending | Merge MeasurementText into the retained TextValue property for individual textual/custom measurement results. Preserve original answers, repeated result rows, historical definition/allowed-answer context and explicit N/A handling. Reconcile conflicting values on the same legacy row and adapt measurement save/closure validation during adoption. Backend/database unchanged.
|
CompletionState | Dropped | Merged into WorkStatus; implementation deferred | Merge this lifecycle field into WorkStatus. Preserve its original state and transition evidence, including physical completion versus quality/release progression; do not discard a completed-work fact when the current lifecycle state advances. HTML review decision; backend / database adoption pending complete review.
|
FailureConfirmed | Dropped | Merged into FailureConfirmation execution evidence; implementation deferred | Remove the independently editable failure-confirmation Boolean. Confirmation is established by a valid FailureConfirmation entry linked through WorkStepId, with StaffMemberId, ActionEndDate and ActionText recording who, when and what was confirmed. Corrections invalidate/supersede evidence with audit history. A legacy true value without evidence remains unresolved historical data; never invent a signer or time. HTML review decision; backend / database adoption pending complete review.
|
ReleasedToService | Dropped | Merged into authoritative release/sign records; implementation deferred | Remove the independently editable release Boolean. Determine release from valid, active, authorized release/sign records for the correct aircraft/component, work and quantity scope. Partial release does not release the whole scope; revoked/superseded records do not count. WorkStatus.Released is a validated projection of this evidence, not a second editable release assertion. Completion or a signature of another kind cannot imply release. HTML review decision; backend / database adoption pending complete review.
|
CloseWorkStep | Dropped | Merged into complete-work command; implementation deferred | Keep CloseWorkStep only as a transient request-command option, not a stored WorkStep property. The option and the direct complete-work endpoint invoke the same lifecycle validation and atomic transition into WorkStatus.Completed. Persist the signed action and transition audit; retries must not duplicate evidence. Quality approval, release and final administrative closure remain separately validated transitions in the same WorkStatus lifecycle. HTML review decision; backend / database adoption pending complete review.
|
Troubleshooting | Dropped | Merged into CriticalEventId and execution action evidence; implementation deferred | Manage the troubleshooting requirement through CriticalEvent.ControlOptions.RequiresTroubleshooting selected by CriticalEventId. Record actual troubleshooting and its outcome in the linked execution/component-removal action using ActionText and existing component identity fields. Preserve the legacy removal troubleshooting marker as historical action evidence. Selecting a requirement does not prove work was performed, and performed work must not create a requirement automatically. There is no second editable troubleshooting Boolean on WorkStep. HTML review decision; backend / database adoption pending complete review.
|
HeaderSpecialCode | Dropped | Merged into SpecialCode; implementation deferred | Merge the header/reference special code into SpecialCode. Preserve scope and source provenance. If legacy codes differ for the same owning step, reconcile them explicitly or retain separate linked reference rows; never overwrite, concatenate into an ambiguous code or truncate historical values. HTML review decision; backend / database adoption pending complete review.
|
PlannedManpower | Dropped | Merged into EstimatedManHours; implementation deferred | Merge planned labor effort into EstimatedManHours. Current creation code populates PlannedManpower from task/repository estimated man-hours, so the retained unit is person-hours. Convert finite Single values to Decimal explicitly, preserving null/zero and documented precision. Reconcile differing estimates; do not sum duplicate estimates or reinterpret genuine legacy headcount as hours. Staff headcount belongs to a staff resource request Quantity. HTML review decision; backend / database adoption pending complete review.
|