Перейти к основному содержимому

index

@mineflow/contracts


@mineflow/contracts

Classes​

ClassDescription
EventVersionMismatchErrorБросается, когда envelope пришёл со старой version, для которой в eventCatalog[type].migrations нет записи. Consumer должен отправить envelope в DLQ — retry бесполезен, пока разработчик не задеплоит миграцию.

Interfaces​

InterfaceDescription
AsyncApiDocumentФорма генерируемого AsyncAPI 3.1.0-документа MineFlow.

Type Aliases​

Type AliasDescription
AssetAssignmentClosedНагрузка hr.asset-assignment.closed.
AssetAssignmentCreatedНагрузка hr.asset-assignment.created.
AssetAssignmentRoleValueЗначение assetAssignmentRoleEnum.
AssetCreatedНагрузка eam.asset.created.
AssetHoursAccumulatedНагрузка eam.asset.hours-accumulated.
AssetHoursAccumulatedRevertedНагрузка eam.asset.hours-accumulated-reverted.
AssetMaintenanceDueНагрузка eam.asset.maintenance-due.
AssetMovementOpValueЗначение assetMovementOpEnum.
AssetMovementStatusValueЗначение assetMovementStatusEnum.
AssetStatusChangedНагрузка eam.asset.status-changed.
AssetStatusValueЗначение assetStatusEnum — один из статусов жизненного цикла актива.
AssetTransferredНагрузка eam.asset.transferred.
AuthMagicLinkIssuedНагрузка auth.magic-link.issued.
AuthMagicLinkRedeemedНагрузка auth.magic-link.redeemed.
BlockAcceptedНагрузка prd.block.accepted.
BlockCreatedНагрузка prd.block.created.
BlockSentToReworkНагрузка prd.block.sent-to-rework.
BlockStartedНагрузка prd.block.started.
BlockSubmittedForAcceptanceНагрузка prd.block.submitted-for-acceptance.
BriefingConducted-
BriefingExpired-
BriefingExpiring-
CertificationExpired-
CertificationExpiring-
CertificationIssued-
CertificationRevoked-
DateRangez.infer dateRangeSchema — { from: string; to: string }.
DowntimeRecorded-
DowntimeRecordedReverted-
EventCatalogEntryКаноническое описание одной записи каталога событий.
EventDataByName-
EventEnvelopez.infer конверта — TypeScript-форма любого события MineFlow. data здесь unknown: чтобы получить точный тип нагрузки, дискриминируй по type и используй EventDataByName<N> из каталога.
EventMigrationUp-конвертер data одной старой версии события к текущей форме. Принимает «сырую» нагрузку (unknown, форма старой версии) и возвращает объект, валидный под текущую schema (тип z.infer<T> фиксируется компилятором). Применяется в migrateEventEnvelope.
EventName-
FuelConsumedНагрузка scm.fuel.consumed.
FuelConsumedRevertedНагрузка scm.fuel.consumed-reverted.
FuelConsumptionAnomalyDetectedНагрузка scm.fuel-consumption.anomaly-detected.
FuelConsumptionRecordedНагрузка scm.fuel-consumption.recorded.
FuelSupplyRecordedНагрузка scm.fuel-supply.recorded.
FuelSupplyRequestApprovedНагрузка scm.fuel-supply-request.approved.
FuelSupplyRequestCreatedНагрузка scm.fuel-supply-request.created.
FuelSupplyRequestSubmittedНагрузка scm.fuel-supply-request.submitted.
FuelSupplyReversedНагрузка scm.fuel-supply.reversed.
FuelTankLowBalanceНагрузка scm.fuel-tank.low-balance.
FuelTankReplenishedНагрузка scm.fuel-tank.replenished.
HrRoleUpdatedНагрузка hr.role.updated.
HseViolationRelatedToSupplier-
HseViolationSeverity-
IamFederatedUserUnmatchedНагрузка iam.federated-user.unmatched.
IncidentCancelled-
IncidentCompleted-
IncidentCorrectiveActionOverdue-
IncidentInvestigationStarted-
IncidentReported-
KpiThresholdBreached-
KpiThresholdMetric-
MaintenanceCancelledНагрузка eam.maintenance.cancelled.
MaintenanceCompletedНагрузка eam.maintenance.completed.
MaintenancePlanAgreedНагрузка eam.maintenance-plan.agreed.
MaintenancePlanApprovedНагрузка eam.maintenance-plan.approved.
MaintenancePlanRejectedНагрузка eam.maintenance-plan.rejected.
MaintenancePlanStatusValueЗначение maintenancePlanStatusEnum.
MaintenancePlanSubmittedНагрузка eam.maintenance-plan.submitted.
MaintenancePlanSupersededНагрузка eam.maintenance-plan.superseded.
MaintenanceScheduledНагрузка eam.maintenance.scheduled.
MaintenanceStatusValueЗначение maintenanceStatusEnum.
MovementAppliedНагрузка eam.movement.applied.
OnecSupplierSynced-
OrgNodeArchivedНагрузка hr.org-node.archived.
OrgNodeCreatedНагрузка hr.org-node.created.
OrgNodeMovedНагрузка hr.org-node.moved.
OrgNodeRestoredНагрузка hr.org-node.restored.
OrgNodeUpdatedНагрузка hr.org-node.updated.
Paginationz.infer paginationSchema — { limit: number; cursor?: string }.
PermitCancelled-
PermitClosed-
PermitExpired-
PermitIssued-
PersonnelCreatedНагрузка hr.personnel.created.
PersonnelDeactivatedНагрузка hr.personnel.deactivated.
PersonnelOffVacationНагрузка hr.personnel.off-vacation.
PersonnelOffWatchНагрузка hr.personnel.off-watch.
PersonnelOnVacationНагрузка hr.personnel.on-vacation.
PersonnelOnWatchНагрузка hr.personnel.on-watch.
PersonnelOrderEffectValueЗначение personnelOrderEffectEnum.
PersonnelOrderIssuedНагрузка hr.personnel-order.issued.
PersonnelOrderRevokedНагрузка hr.personnel-order.revoked.
PersonnelOrderSupersededНагрузка hr.personnel-order.superseded.
PersonnelStatusValueЗначение personnelStatusEnum.
PersonnelTransferredНагрузка hr.personnel.transferred.
PlatformInitialized-
ProductionPlanAdjustmentRequestedНагрузка prd.production-plan.adjustment-requested.
ProductionPlanAmendedНагрузка prd.production-plan.amended.
ProductionPlanAmendmentRejectedНагрузка prd.production-plan.amendment-rejected.
ProductionPlanApprovedНагрузка prd.production-plan.approved.
ProductionPlanCompletionLowНагрузка prd.production-plan.completion-low.
ProductionPlanForecastShortfallНагрузка prd.production-plan.forecast-shortfall.
ProductionPlanShiftNormViolatedНагрузка prd.production-plan.shift-norm-violated.
ProductionPlanSupersededНагрузка prd.production-plan.superseded.
RefBulkUpdated-
RefEntityCreated-
RefEntityUpdated-
RiskAssessed-
RiskClosed-
RiskIdentified-
RiskMitigated-
ShiftCreatedНагрузка hr.shift.created.
ShiftForemanAssignedНагрузка hr.shift.foreman-assigned.
ShiftForemanMissingНагрузка hr.shift.foreman-missing.
ShiftReportApprovedНагрузка prd.shift-report.approved.
ShiftReportAssetUsageAcceptedНагрузка prd.shift-report.asset-usage-accepted.
ShiftReportAssetUsageReceivedНагрузка prd.shift-report.asset-usage-received.
ShiftReportCreatedНагрузка prd.shift-report.created.
ShiftReportFormedНагрузка prd.shift-report.formed.
ShiftReportRejectedНагрузка prd.shift-report.rejected.
ShiftReportRejectedAfterApproveНагрузка prd.shift-report.rejected-after-approve.
ShiftReportSubmittedНагрузка prd.shift-report.submitted.
ShiftReportSummaryНагрузка shiftReportSummarySchema — числовой rollup отчёта.
ShiftStatisticsRecorded-
ShiftStatisticsRecordedReverted-
ShiftSubstitutionRegisteredНагрузка hr.shift.substitution-registered.
ShiftTypeValueЗначение shiftTypeEnum.
SignatureEnvelopez.infer signatureEnvelopeSchema — { format: 'cms'; cms: string }.
SupplierActivatedНагрузка scm.supplier.activated.
SupplierArchivedНагрузка scm.supplier.archived.
SupplierCreatedНагрузка scm.supplier.created.
SupplierSentBackToDraftНагрузка scm.supplier.sent-back-to-draft.
SupplierStatusValueЗначение supplierStatusEnum.
SupplierSubmittedForReviewНагрузка scm.supplier.submitted-for-review.
SupplierSuspendedНагрузка scm.supplier.suspended.
SupplierUpdatedНагрузка scm.supplier.updated.
SurveyAudienceScopeValueЗначение surveyAudienceScopeEnum.
SurveyClosedНагрузка hr.survey.closed.
SurveyPublishedНагрузка hr.survey.published.
SurveyResponseSubmittedНагрузка hr.survey.response-submitted.
TaskAssignedНагрузка tasks.task.assigned.
TaskBlockedНагрузка tasks.task.blocked.
TaskCancelledНагрузка tasks.task.cancelled.
TaskCompletedНагрузка tasks.task.completed.
TaskCreatedНагрузка tasks.task.created.
TaskPriorityValueЗначение taskPriorityEnum.
TaskStartedНагрузка tasks.task.started.
TaskUnassignedНагрузка tasks.task.unassigned.
TaskUnblockedНагрузка tasks.task.unblocked.
TelematicsAssetLinkLinkedНагрузка telematics.asset-link.linked.
TelematicsAssetLinkRegisteredНагрузка telematics.asset-link.registered.
TelematicsAssetLinkResumedНагрузка telematics.asset-link.resumed.
TelematicsAssetLinkSuspendedНагрузка telematics.asset-link.suspended.
TelematicsAssetLinkUnlinkedНагрузка telematics.asset-link.unlinked.
TelematicsAssetMotohoursObservedНагрузка telematics.asset.motohours-observed.
TelematicsAssetOdometerObservedНагрузка telematics.asset.odometer-observed.
TelematicsAssetPowerObservedНагрузка telematics.asset.power-observed.
TelematicsProviderValueЗначение telematicsProviderEnum.
TimesheetAdjustedНагрузка hr.timesheet.adjusted.
TimesheetConfirmedНагрузка hr.timesheet.confirmed.
TimesheetRevertedНагрузка hr.timesheet.reverted.
TmcConsumed-
TmcConsumedReverted-
TmcConsumptionRecordedНагрузка scm.tmc-consumption.recorded.
TmcConsumptionReversedНагрузка scm.tmc-consumption.reversed.
TmcInboundRecordedНагрузка scm.tmc-inbound.recorded.
TmcInboundReversedНагрузка scm.tmc-inbound.reversed.
TmcInventoryCompleted-
TmcInventoryStartedНагрузка scm.tmc-inventory.started.
TmcInventoryVarianceDetected-
TmcItemCreatedНагрузка scm.tmc-item.created.
TmcItemDeactivatedНагрузка scm.tmc-item.deactivated.
TmcItemLowStockНагрузка scm.tmc-item.low-stock.
TmcItemStockoutForecastНагрузка scm.tmc-item.stockout-forecast.
TmcItemStockReplenishedНагрузка scm.tmc-item.stock-replenished.
TmcItemUpdatedНагрузка scm.tmc-item.updated.
TmcReconciliationMismatch-
TmcRequestApprovedНагрузка scm.tmc-request.approved.
TmcRequestCreatedНагрузка scm.tmc-request.created.
TmcRequestEmergencyCreatedНагрузка scm.tmc-request.emergency-created.
TmcRequestFulfilledНагрузка scm.tmc-request.fulfilled.
TmcRequestInProgressНагрузка scm.tmc-request.in-progress.
TmcRequestRejectedНагрузка scm.tmc-request.rejected.
TmcRequestSubmittedНагрузка scm.tmc-request.submitted.
TmcTransferConfirmedНагрузка scm.tmc-transfer.confirmed.
TmcTransferIssuedНагрузка scm.tmc-transfer.issued.
UserAccountCreatedНагрузка hr.user-account.created.
UserAccountDeactivatedНагрузка hr.user-account.deactivated.
UserAccountIamProvisioningRequestedНагрузка hr.user-account.iam-provisioning-requested.
UserAccountIamProvisioningStatusValueЗначение userAccountIamProvisioningStatusEnum.
UserAccountIdentityLinkedНагрузка hr.user-account.identity-linked.
UserAccountLockedНагрузка hr.user-account.locked.
UserAccountLoginChangedНагрузка hr.user-account.login-changed.
UserAccountPasswordResetIssuedНагрузка hr.user-account.password-reset-issued.
UserAccountRolesChangedНагрузка hr.user-account.roles-changed.
UserAccountStatusValueЗначение userAccountStatusEnum.
UserAccountUnlockedНагрузка hr.user-account.unlocked.
ViolationCancelled-
ViolationOverdue-
ViolationReported-
ViolationResolved-
WatchAssignmentActivatedНагрузка hr.watch-assignment.activated.
WatchAssignmentCancelledНагрузка hr.watch-assignment.cancelled.
WatchAssignmentCompletedНагрузка hr.watch-assignment.completed.
WatchAssignmentScheduledНагрузка hr.watch-assignment.scheduled.
WatchAssignmentStatusValueЗначение watchAssignmentStatusEnum.
WatchCreatedНагрузка hr.watch.created.
WorkOrderCancelledНагрузка prd.work-order.cancelled.
WorkOrderClosedНагрузка prd.work-order.closed.
WorkOrderCreatedНагрузка prd.work-order.created.
WorkOrderIssuedНагрузка prd.work-order.issued.

Variables​

VariableDescription
anaDowntimeEvents-
anaKpiEvents-
anaShiftStatisticsEvents-
assetAssignmentClosedDataSchemahr.asset-assignment.closed — закрепление закрыто (toDate). cause различает источник закрытия: ручное, каскад от списания актива (EAM), каскад от увольнения сотрудника (HR) или замена. Подписчики: Notifications.
assetAssignmentCreatedDataSchemahr.asset-assignment.created — актив закреплён за сотрудником в роли с даты fromDate. Подписчики: Notifications.
assetAssignmentRoleEnumРоль закрепления: основной оператор / сменный оператор / механик.
assetCreatedDataSchemaeam.asset.created — актив зарегистрирован и введён в эксплуатацию. Подписчики: ANA (инициализация KTG/КИО), Notifications.
assetHoursAccumulatedDataSchemaeam.asset.hours-accumulated — моточасы актива за смену зафиксированы. Подписчики: EAM (учёт износа для maintenance scheduling), ANA (KTG/КИО).
assetHoursAccumulatedRevertedDataSchemaeam.asset.hours-accumulated-reverted — counter-event для сторно. Подписчики откатывают моточасы и пересчитывают maintenance schedule.
assetMaintenanceDueDataSchemaeam.asset.maintenance-due — по активу наступил срок ТО (норма выработки или календарный срок). Подписчики: EAM (планирование ТО), Notifications (механик).
assetMovementOpEnumТип операции перемещения: консервация / расконсервация / аудиторский перенос.
assetMovementStatusEnumСтатус записи перемещения: черновик / применена.
assetStatusChangedDataSchemaeam.asset.status-changed — статус актива изменился (FSM-переход). Несёт fromStatus/toStatus для аудита перехода. Подписчики: ANA, EAM (учёт доступности оборудования), Notifications.
assetStatusEnumСтатусы актива: рабочий / на ТО / на консервации / списан.
assetTransferredDataSchemaeam.asset.transferred — актив перемещён между производственными объектами. Подписчики: ANA (привязка моточасов к объекту), Notifications.
authMagicLinkEventsЗаписи каталога Auth/Magic-link: имя события → { version, schema }.
authMagicLinkIssuedDataSchemaauth.magic-link.issued — админ выпустил одноразовый токен входа пользователю. actorId — Keycloak sub админа-инициатора, expiresAt — срок действия.
authMagicLinkRedeemedDataSchemaauth.magic-link.redeemed — токен погашен при входе (сессия выпущена). redeemedAt — момент погашения.
blockAcceptedSchemaprd.block.accepted — маркшейдер принял блок (under_acceptance → accepted, терминальное). reworkOrderId — закрытый цикл перебура (null, если приняли без перебура). Подписчики: ana («Акты по принятым сменам»), prd/work-orders, Notifications (начальнику участка).
blockCreatedSchemaprd.block.created — блок заведён (FSM [*] → pending). Подписчики: ana (счётчики «Предстоит» на доске блоков).
blockSentToReworkSchemaprd.block.sent-to-rework — маркшейдер отправил N скважин на перебур (under_acceptance → in_progress, reworkActive=true). Потребность ВВ/коронок/ДТ растёт дельтой на remainingMeters (ADR-0003). Подписчики: prd/work-orders (рост потребности), Notifications (баннер начальнику участка), ana.
blockStartedSchemaprd.block.started — блок запущен в работу (pending → in_progress). Подписчики: ana, prd/work-orders.
blockSubmittedForAcceptanceSchemaprd.block.submitted-for-acceptance — факт достиг плана/остатка, блок подан на маркшейдерскую приёмку (in_progress → under_acceptance). auto=true — авто из handler'а accumulate-fact. Подписчики: Notifications (push маркшейдеру), ana.
briefingConductedDataSchema-
briefingExpiredDataSchema-
briefingExpiringDataSchema-
certificationExpiredDataSchema-
certificationExpiringDataSchema-
certificationIssuedDataSchema-
certificationRevokedDataSchema-
dateRangeSchemaДиапазон дат { from, to } (обе границы включительно, ISO 8601). .refine гарантирует from <= to — невалидный диапазон отвергается на parse.
downtimeRecordedDataSchemaana.downtime.recorded — простой зафиксирован при approve сменного отчёта. Подписчики: ANA (KTG/КИО), EAM (предиктивное ТО).
downtimeRecordedRevertedDataSchemaana.downtime.recorded-reverted — counter-event для сторно. Подписчики откатывают записанный простой из KTG/КИО.
eamAssetEventsЗаписи каталога EAM/Asset: имя события → { version, schema }.
eamAssetHoursEventsЗаписи каталога EAM/Asset hours: имя события → { version, schema }.
eamMaintenanceEventsЗаписи каталога EAM/Maintenance: имя события → { version, schema }.
eamMaintenancePlanEventsЗаписи каталога EAM/Maintenance-plans: имя события → { version, schema }.
eamMovementEventsЗаписи каталога EAM/AssetMovement: имя события → { version, schema }.
eventCatalog-
eventEnvelopeSchemaЕдиный конверт всех доменных событий MineFlow (SSoT формы события). Полезная нагрузка лежит в data, метаданные — снаружи: id, type, version, occurredAt, producedBy, корреляция и organizationId.
fuelConsumedDataSchemascm.fuel.consumed — расход топлива зафиксирован при approve сменного отчёта.
fuelConsumedRevertedDataSchemascm.fuel.consumed-reverted — counter-event для сторно саги.
fuelConsumptionAnomalyDetectedDataSchemascm.fuel-consumption.anomaly-detected — расход за смену превысил норму > 30%.
fuelConsumptionRecordedDataSchemascm.fuel-consumption.recorded — зафиксирован расход топлива из резервуара. kind различает авто-расход (из сменного отчёта) и ручной акт. Подписчики: ANA, Notifications.
fuelSupplyRecordedDataSchemascm.fuel-supply.recorded — зафиксирована поставка топлива в резервуар (приход). supplyRequestId/sagaId опциональны (поставка может быть вне заявки/саги). Подписчики: ANA, Notifications.
fuelSupplyRequestApprovedDataSchemascm.fuel-supply-request.approved.
fuelSupplyRequestCreatedDataSchemascm.fuel-supply-request.created — FSM [*] → draft.
fuelSupplyRequestFulfilledDataSchemascm.fuel-supply-request.fulfilled.
fuelSupplyRequestRejectedDataSchemascm.fuel-supply-request.rejected.
fuelSupplyRequestSubmittedDataSchemascm.fuel-supply-request.submitted — draft → sent.
fuelSupplyReversedDataSchemascm.fuel-supply.reversed — counter-entry для сторно поставки (docs/modules/scm/fuel/events.md § Publish).
fuelTankDerivedStatusEnumПроизводный статус резервуара по остатку: норма / внимание / критичный.
fuelTankLowBalanceDataSchemascm.fuel-tank.low-balance — производный статус резервуара critical.
fuelTankReplenishedDataSchemascm.fuel-tank.replenished — выход из critical.
hrAssetAssignmentEventsЗаписи каталога HR/Asset-assignments: имя события → { version, schema }.
hrIamEventsЗаписи каталога HR/IAM: имя события → { version, schema }.
hrOrgNodeEventsЗаписи каталога HR/Org-structure: имя события → { version, schema }.
hrPersonnelEventsЗаписи каталога HR/Personnel: имя события → { version, schema }.
hrPersonnelOrderEventsЗаписи каталога HR/Personnel Orders: имя события → { version, schema }.
hrRoleUpdatedDataSchemahr.role.updated — обновлена системная роль (code/version). Подписчики: модули, кэширующие справочник ролей / permission-cache.
hrSurveyEventsЗаписи каталога HR/Survey: имя события → { version, schema }.
hrTimesheetEventsЗаписи каталога HR/Timesheet: имя события → { version, schema }.
hrUserAccountEventsЗаписи каталога HR/User-accounts: имя события → { version, schema }.
hrWatchEventsЗаписи каталога HR/Watches: имя события → { version, schema }.
hseEvents-
hseViolationEvents-
hseViolationRelatedToSupplierDataSchema-
hseViolationSeverityEnumhse.violation.related-to-supplier — HSE-нарушение, связанное с поставщиком.
iamFederatedUserUnmatchedDataSchemaiam.federated-user.unmatched — федерированный Keycloak-пользователь не сматчился ни на одну активную учётку/Personnel при reconciliation (ADR-0056, @mineflow/iam): либо нет канонической привязки по directoryUid, либо bootstrap по email дал ноль/неоднозначный результат, либо у пользователя нет ни одной mappable-роли для создания учётки. Пользователь помещается в «карантин» — HR-атрибуты в Keycloak НЕ пишутся (object-scoped функции остаются fail-closed до ручной привязки). reason различает причину (no-directory-uid / no-email-match / ambiguous-email-match / no-mappable-roles / login-retired — HR-UA-INV-16: directory-username совпал с логином, с которого другую учётку уже переименовали). Подписчики: IAM-аудит/алертинг, операционный дашборд.
incidentCancelledDataSchema-
incidentCompletedDataSchema-
incidentCorrectiveActionOverdueDataSchema-
incidentInvestigationStartedDataSchema-
incidentReportedDataSchema-
integrationEvents-
integrationOnecEvents-
isoDateSchemaДата-время в формате ISO 8601 / RFC 3339 (строка). Канон для всех временны́х полей событий (occurredAt-подобные shiftDate, approvedAt, …). Хранится как строка, а не Date, чтобы конверт был JSON-сериализуем без потерь (envelope живёт в outbox / Redis Streams).
KPI_RED_THRESHOLDSПороги «красной зоны» KPI (ТЗ §5.3) — единый источник истины. Потребляют и scheduled-evaluator (apps/scheduler), и доменная раскраска статусов (libs/ana kpi-status.ts), чтобы alert-cron и dashboard не разъезжались. ktg/kio/plan — нижняя граница «красного» в % (значение < порога → red); fuelDeviationPct — верхняя граница отклонения удельного расхода в % (отклонение > порога → red).
kpiThresholdBreachedDataSchemaana.kpi.threshold-breached — KPI вышел за порог «красной зоны» (ТЗ §5.3). Подписчики: Notifications (предупреждение ответственным ролям).
kpiThresholdMetricEnumМетрика, по которой сработал порог. - ktg/kio — per-object готовность/использование за скользящее окно 7 дней; - fuel_specific — удельный расход ДТ per-object; - plan — выполнение нарастающего плана п/м за месяц per-object (ТЗ §5.3 «Выполнение плана < 80 %»).
maintenanceCancelledDataSchemaeam.maintenance.cancelled — запланированное ТО отменено (с причиной). Подписчики: EAM, Notifications.
maintenanceCompletedDataSchemaeam.maintenance.completed — ТО завершено, актив возвращается в работу. Несёт startedAt/completedAt для учёта простоя. Подписчики: ANA (KTG), EAM (сброс счётчика выработки до следующего ТО), Notifications.
maintenancePlanAgreedDataSchemaeam.maintenance-plan.agreed — план согласован (pending_agreement → agreed). Подписчики: Notifications (технический директор — ему утверждать).
maintenancePlanApprovedDataSchemaeam.maintenance-plan.approved — план утверждён (agreed → approved), снимок заморожен. Подписчики: Notifications (автор/механики), ANA (резерв — план vs факт ТО).
maintenancePlanRejectedDataSchemaeam.maintenance-plan.rejected — план отклонён согласующим/утверждающим (→ draft). Подписчики: Notifications (автор плана).
maintenancePlanStatusEnumFSM-статус графика ТО/ППР.
maintenancePlanSubmittedDataSchemaeam.maintenance-plan.submitted — план отправлен на согласование (draft → pending_agreement). Подписчики: Notifications (главный механик — ему согласовывать).
maintenancePlanSupersededDataSchemaeam.maintenance-plan.superseded — план заменён новой версией (amend утверждённого). Подписчики: Notifications.
maintenanceScheduledDataSchemaeam.maintenance.scheduled — ТО запланировано на актив. Подписчики: Notifications (механик), EAM (резерв доступности актива).
maintenanceStatusEnumСтатус записи ТО: запланировано / в работе / завершено / отменено.
moneyAmountSchemaДенежная сумма с валютой: { amount, currency }. amount — целое число в минимальных единицах валюты (тиыны для KZT), чтобы исключить ошибки округления с плавающей точкой; currency — трёхбуквенный код ISO 4217.
movementAppliedDataSchemaeam.movement.applied — операция перемещения применена к активу (запись переведена draft → applied). Подписчики: ANA, Notifications. fromObjectId/toObjectId опциональны — заполняются только для переносов.
onecSupplierSyncedDataSchemaintegration.onec.supplier-synced — обновление реквизитов поставщика из 1С (этап 5).
orgNodeArchivedDataSchemahr.org-node.archived — узел переведён в архив (FSM active→archived). Подписчики: Notifications.
orgNodeCreatedDataSchemahr.org-node.created — узел штатного расписания создан. parentId nullable (корень), positionId nullable (узел-подразделение). Подписчики: Notifications.
orgNodeMovedDataSchemahr.org-node.moved — узел перемещён под другого родителя. oldParentId/newParentId nullable (корень). Подписчики: Notifications.
orgNodeRestoredDataSchemahr.org-node.restored — архивный узел восстановлен (FSM archived→active). Подписчики: Notifications.
orgNodeUpdatedDataSchemahr.org-node.updated — изменены атрибуты узла. changedFields перечисляет затронутые поля (для аудита и точечной инвалидации). Подписчики: Notifications.
paginationSchemaКурсорная пагинация query-параметров: { limit, cursor }. limit коэрсится из строки (query-string всегда строка), целое 1–200, default 50. cursor — опциональный непрозрачный курсор следующей страницы.
permitCancelledDataSchema-
permitClosedDataSchema-
permitExpiredDataSchema-
permitIssuedDataSchema-
personnelCreatedDataSchemahr.personnel.created — сотрудник принят на работу (нанят). Подписчики: Notifications; downstream-модули, ведущие справочник персонала. objectId nullable — сотрудник может быть нанят без привязки к объекту.
personnelDeactivatedDataSchemahr.personnel.deactivated — сотрудник уволен (terminated, terminal). Запускает HR-каскад: закрытие открытых asset-assignment'ов, деактивация связанного user-account. Подписчики: hr/asset-assignments, hr/user-accounts, Notifications.
personnelOffVacationDataSchemahr.personnel.off-vacation — сотрудник вернулся из отпуска (статус onVacation → active). Подписчики: Notifications.
personnelOffWatchDataSchemahr.personnel.off-watch — сотрудник уехал с вахты (статус onWatch → active). Подписчики: hr/watches, Notifications.
personnelOnVacationDataSchemahr.personnel.on-vacation — сотрудник ушёл в отпуск (статус → onVacation). Подписчики: Notifications. expectedReturnDate опциональна.
personnelOnWatchDataSchemahr.personnel.on-watch — сотрудник заехал на вахту (статус → onWatch). Подписчики: hr/watches, Notifications. watchId опционален, если заезд не привязан к конкретному вахтовому циклу.
personnelOrderEffectEnumДоменное последствие приказа (effect), несомое в issued/revoked.
personnelOrderIssuedDataSchemahr.personnel-order.issued — приказ выпущен (номер присвоен, payload зафиксирован). Несущее событие модуля: драйвит эффект на сотрудника. Подписчики: hr/personnel (применение эффекта), ana/*, notifications.
personnelOrderRevokedDataSchemahr.personnel-order.revoked — выпущенный приказ сторнирован. Если у приказа был применён эффект — потребители выполняют компенсацию. Подписчики: hr/personnel (компенсация эффекта), ana/*, notifications.
personnelOrderSupersededDataSchemahr.personnel-order.superseded — приказ заменён более новым (supersededByOrderId). Подписчики: ana/*.
personnelStatusEnumСтатус сотрудника: активен / на вахте / в отпуске / межвахта / больничный / уволен.
personnelTransferredDataSchemahr.personnel.transferred — сотрудник переведён на другой производственный объект (с даты effectiveFrom). fromObjectId nullable — для первого закрепления ранее непривязанного сотрудника. Подписчики: Notifications.
platformEvents-
platformInitializedSchemaСлужебное платформенное событие. Намеренно НЕ имеет доменного публикатора и подписчика: служит стабильным schema-замороженным эталоном для unit-тестов мигратора версий событий (event-migrator.spec.ts) — его schema не зависит от эволюции бизнес-доменов. В каталоге событий помечается как intentional (без in-repo publisher/subscriber), не как «забытое».
prdBlockEventsЗаписи каталога PRD/Blocks: имя события → { version, schema }.
prdProductionPlanEventsЗаписи каталога PRD/Production Plans: имя события → { version, schema }.
prdShiftReportEventsЗаписи каталога PRD/Shift Reports: имя события → { version, schema }.
prdWorkOrderEventsЗаписи каталога PRD/Work-orders: имя события → { version, schema }.
productionPlanAdjustmentRequestedSchemaprd.production-plan.adjustment-requested — Engineer создал amend с delta > 20%, версия в pending_ceo. Подписчики: Notifications (push CEO), ana/kpi.
productionPlanAmendedSchemaprd.production-plan.amended — создана новая ProductionPlanVersion в статусе auto_approved (delta ≤ 20% или инициатор = CEO) ИЛИ CEO утвердил pending_ceo. Подписчики: ana/kpi (пересчёт plan_value для оставшихся дней периода), Notifications.
productionPlanAmendmentRejectedSchemaprd.production-plan.amendment-rejected — CEO отклонил pending_ceo версию. Подписчики: Notifications (Engineer-инициатор), ana/kpi.
productionPlanApprovedSchemaprd.production-plan.approved — план утверждён (FSM draft → approved), создана ProductionPlanVersion v1. Подписчики: ana/kpi (инициализация дашборда план/факт), Notifications.
productionPlanCompletionLowSchemaprd.production-plan.completion-low — накопленный факт < 80% от нарастающего плана (PRD-2.5.2). Подписчики: Notifications (Engineer, CEO).
productionPlanForecastShortfallSchemaprd.production-plan.forecast-shortfall — прогноз по текущему темпу <100% месячного плана. Подписчики: Notifications (Engineer, Foreman).
productionPlanShiftNormViolatedSchemaprd.production-plan.shift-norm-violated — факт смены < 70% от норматива и нет зафиксированного простоя. Подписчики: Notifications (Foreman, Engineer).
productionPlanSupersededSchemaprd.production-plan.superseded — план замещён новым планом на тот же (org, horizon, year, month). Подписчики: ana/kpi, Notifications.
refBulkUpdatedDataSchema-
refEntityCreatedDataSchema-
refEntityUpdatedDataSchema-
refsEvents-
riskAssessedDataSchema-
riskClosedDataSchema-
riskIdentifiedDataSchema-
riskMitigatedDataSchema-
scmFuelEventsЗаписи каталога SCM/Fuel: имя события → { version, schema }.
scmSupplierEventsЗаписи каталога SCM/Supplier: имя события → { version, schema }.
scmTmcEvents-
shiftCreatedDataSchemahr.shift.created — создана смена на объекте (shiftType, durationHours). watchId nullable — смена может быть вне вахтового цикла. Подписчики: hr/timesheet (создание draft-табелей), Notifications.
shiftForemanAssignedDataSchemahr.shift.foreman-assigned — критичное событие для PRD 1.0. SLA < 2 сек (см. dependencies.md). При создании ShiftReport мастер смены заполняется автоматически из последнего assigned-события за указанные сутки.
shiftForemanMissingDataSchemahr.shift.foreman-missing — алерт для Notifications, если за shiftDate не назначен foremanId. Публикуется периодическим cron-handler'ом.
shiftReportApprovedSchemaprd.shift-report.approved — отчёт утверждён инженером (submitted → approved). Запускает 5-шаговую approve-сагу (см. ApproveShiftReportSaga). Подписчики: SCM/EAM/HR/ANA — каждый выполняет свой эффект из саги. Notifications.
shiftReportAssetUsageAcceptedSchemaprd.shift-report.asset-usage-accepted (ADR-0101, BL-54) — начальник участка принял строку-станок (received → accepted). Подписчики (будущее): Notifications (буровик видит «отчёт принят»), ANA. Эмитится из AcceptShiftAssetUsageUseCase.
shiftReportAssetUsageReceivedSchemaprd.shift-report.asset-usage-received (ADR-0101/0102, BL-54) — буровик (Operator) подал строку-станок своего сменного отчёта (intakeStatus=received). Подписчики (будущее): Notifications (начальник участка видит «поступил отчёт по станку»), ANA. Эмитится из AddShiftAssetUsageUseCase транзакционно с записью строки-станка. partitionKey = reportId (FIFO в пределах отчёта).
shiftReportCreatedSchemaprd.shift-report.created — черновик отчёта создан мастером (status=draft). Подписчики: HR (autofill foreman из последнего hr.shift.foreman-assigned), Notifications (мастер видит подтверждение).
shiftReportFormedSchemaprd.shift-report.formed (ADR-0101, BL-54) — отчёт сформирован из принятых строк-станков (draft → formed), приём буровиков закрыт. Подписчики (будущее): Notifications (инженер — «пакет актов готов к проверке»), ANA. Эмитится из FormShiftReportUseCase. Не путать с approved (утверждение — отдельный FSM-шаг).
shiftReportRejectedAfterApproveSchemaprd.shift-report.rejected-after-approve — сторно ПОСЛЕ утверждения (approved → rejected). Запускает 5-шаговую reverse-сагу. Доступно только CEO (двойное согласование). Подписчики: SCM/EAM/HR/ANA — каждый откатывает свой эффект через counter-entries (ADR-0003). Notifications.
shiftReportRejectedSchemaprd.shift-report.rejected — отчёт отклонён инженером ИЗ status=submitted (без бизнес-эффектов, т.к. approve-сага ещё не запускалась). Подписчики: Notifications (мастер получает «нужно исправить»).
shiftReportSubmittedSchemaprd.shift-report.submitted — отчёт подан на утверждение (draft → submitted). Подписчики: Notifications (инженер получает «требуется утверждение»).
shiftReportSummarySchemaShiftReport summary — числовой rollup отчёта в момент утверждения. Используется read-side projector'ом shift-report-daily-summary (ADR-0032) как единственный источник данных (projection не читает write-side таблицы).
shiftStatisticsRecordedDataSchemaana.shift.statistics-recorded — производственная статистика отчёта зафиксирована. Подписчики: ANA (dashboard), BI.
shiftStatisticsRecordedRevertedDataSchemaana.shift.statistics-recorded-reverted — counter-event для сторно. Подписчики откатывают агрегаты из ANA dashboard.
shiftSubstitutionRegisteredDataSchemahr.shift.substitution-registered — Foreman регистрирует замену/подмену (HR 1.3). Не меняет foreman_id; меняет фактический состав смены.
shiftTypeEnumТип смены — день/ночь. Общая семантика для HR и PRD (один концепт смены), поэтому shiftReportSummarySchema/PRD reuse-ят именно этот enum.
signatureEnvelopeSchemaЭЦП-обёртка одной подписи (ADR-0105 / BL-58). Контейнер CMS (CAdES) в base64 (DER). Едет в ТЕЛЕ запроса зарезервированным полем _signature, НЕ в HTTP-заголовке: CAdES-T/LT (6–40+ КБ) превышает header-budget Node/прокси (см. «Контракт передачи подписи на edge» в ADR-0105). Транспортный конверт — SignatureGuard снимает его до доменной валидации, use-case поле игнорирует.
supplierActivatedDataSchemascm.supplier.activated — поставщик утверждён (under_review → active или suspended → active). Подписчики: ana/kpi (satellite cache), Notifications, Reporting.
supplierArchivedDataSchemascm.supplier.archived — поставщик архивирован (terminal). Double-approval для active/suspended. Подписчики: ana/kpi, Reporting, Integration (1С: пометить контрагента архивным).
supplierCreatedDataSchemascm.supplier.created — Supplier зарегистрирован в статусе draft. Подписчики: ana/kpi (satellite cache), Reporting (актам сверки).
supplierSentBackToDraftDataSchemascm.supplier.sent-back-to-draft — финдиректор/admin вернул в draft с комментарием. Подписчики: Notifications (нотификация инициатора с comment).
supplierStatusEnumFSM-статусы поставщика: draft → underReview → active ↔ suspended → archived.
supplierSubmittedForReviewDataSchemascm.supplier.submitted-for-review — реквизиты заполнены, отправлено финдиректору. Подписчики: Notifications (нотификация ceo/admin).
supplierSuspendedDataSchemascm.supplier.suspended — поставщик заблокирован. Подписчики: - scm/tmc (business reaction: cancel draft TmcInbound — SCM-SUP-INV-03c) - scm/fuel (cancel draft FuelSupply) - Notifications (главбух, снабжение) - ana/kpi
supplierUpdatedDataSchemascm.supplier.updated — изменение защищённых полей (iban/bin/iin/legalName/legalAddress) на active supplier. Двойное согласование требуется для iban/bin/iin (docs/modules/scm/suppliers/events.md § Publish). Подписчики: Notifications (гл. бух при смене iban), ana/kpi, Reporting, Integration (1С sync).
surveyAudienceScopeEnumТип аудитории опроса: вся организация / по фильтру объектов и должностей.
surveyClosedDataSchemahr.survey.closed — приём ответов завершён (published → closed). Подписчики: Notifications (уведомление автору), read-model (финализация). audienceSize — знаменатель response-rate на момент закрытия.
surveyPublishedDataSchemahr.survey.published — опрос опубликован (draft → published) и открыт для ответов. Подписчики: Notifications (рассылка push адресатам по аудитории).
surveyResponseSubmittedDataSchemahr.survey.response-submitted — сотрудник отправил заполнение (SurveyResponse: draft → submitted). Подписчики: read-model дашборда (инкремент агрегата и счётчика ответов). Содержимого ответов не несёт (ПДн).
taskAssignedDataSchematasks.task.assigned — задаче назначен исполнитель. Подписчик: Notifications.
taskBlockedDataSchematasks.task.blocked — задача заблокирована (с причиной).
taskCancelledDataSchematasks.task.cancelled — задача отменена (с причиной).
taskCompletedDataSchematasks.task.completed — задача выполнена. Подписчик: Notifications (постановщик).
taskCreatedDataSchematasks.task.created — задача создана.
taskPriorityEnumПриоритет задачи.
taskStartedDataSchematasks.task.started — задача взята в работу.
tasksTaskEventsЗаписи каталога Tasks/Task: имя события → { version, schema }.
taskUnassignedDataSchematasks.task.unassigned — исполнитель снят (в т.ч. каскад деактивации Personnel).
taskUnblockedDataSchematasks.task.unblocked — блокировка снята, задача снова в работе.
telematicsAssetEventsЗаписи каталога telematics/asset (observation-факты): имя события → { version, schema }.
telematicsAssetLinkEventsЗаписи каталога telematics/asset-link: имя события → { version, schema }.
telematicsAssetLinkLinkedDataSchematelematics.asset-link.linked — привязка к активу (unlinked → linked). Подписчики: ana/kpi (контекст). Несёт снимок objectId для object-scope.
telematicsAssetLinkRegisteredDataSchematelematics.asset-link.registered — заведён юнит провайдера ([*] → unlinked). Подписчики: — (аудит).
telematicsAssetLinkResumedDataSchematelematics.asset-link.resumed — возобновление (suspended → linked).
telematicsAssetLinkSuspendedDataSchematelematics.asset-link.suspended — пауза ingest (linked → suspended). reason несёт причину (например asset-decommissioned при авто-suspend по списанию актива, TLM-INV-06).
telematicsAssetLinkUnlinkedDataSchematelematics.asset-link.unlinked — отвязка (→ unlinked). Подписчики: ana/kpi. assetId — актив, от которого отвязались.
telematicsAssetMotohoursObservedDataSchematelematics.asset.motohours-observed — наработка за окно из интервалов ignition. Прокси-метрика (io_239 → зажигание) — calibrated гейтит source-authority (TLM-INV-08): EAM пишет AssetMeterReading(source=telematics) только при calibrated=true.
telematicsAssetOdometerObservedDataSchematelematics.asset.odometer-observed — снимок пробега из канонического odometerM (абсолютный одометр последнего сэмпла окна, переведён в км). Только linked.
telematicsAssetPowerObservedDataSchematelematics.asset.power-observed — статус внешнего питания из externalPowerV (health: «обесточен» = работа от резервной батареи). Опциональный факт.
telematicsEvents-
telematicsProviderEnumПровайдер телематики (enum расширяем; определяет адаптер).
timesheetAdjustedDataSchemahr.timesheet.adjusted — manual_adjust инженером/админом. Несёт previousHoursWorked/previousDowntimeHours для аудита и пересчёта KPI.
timesheetConfirmedDataSchemahr.timesheet.confirmed — draft → confirmed после shift-report.approved. Подписчики: ANA (для построения отчётности по фактической отработке).
timesheetRevertedDataSchemahr.timesheet.reverted — confirmed/adjusted → reverted после shift-report.rejected-after-approve. Часы обнуляются. previousHoursWorked/previousDowntimeHours сохраняем для возможного повторного approve (revert → confirm).
tmcCategoryEnumSchema-
tmcConsumedDataSchemascm.tmc.consumed — legacy event (использовался до выделения шага write-off-tmc). Сохранён для обратной совместимости подписчиков ana/kpi. Новые потребители подписываются на scm.tmc-consumption.recorded.
tmcConsumedRevertedDataSchema-
tmcConsumptionRecordedDataSchemascm.tmc-consumption.recorded — списание ТМЦ со склада. mode различает авто-списание из сменного отчёта и ручной акт. shiftReportId/assetId/ reason nullable. Подписчики: ana/kpi, Notifications.
tmcConsumptionReversedDataSchemascm.tmc-consumption.reversed — сторно ранее списанного расхода (с причиной). Подписчики: ana/kpi, Notifications.
tmcInboundRecordedDataSchemascm.tmc-inbound.recorded — оприходование ТМЦ на склад (от поставщика, переносом или возвратом). supplierId/requestId nullable. Подписчики: ana/kpi, Notifications.
tmcInboundReversedDataSchemascm.tmc-inbound.reversed — сторно ранее оприходованного прихода (с причиной). Подписчики: ana/kpi, Notifications.
tmcInventoryCompletedDataSchemascm.tmc-inventory.completed — инвентаризация завершена (started → completed), totalVariance — суммарное расхождение по итогам. Подписчики: ana/kpi, Notifications.
tmcInventoryStartedDataSchemascm.tmc-inventory.started — начата инвентаризация склада (FSM → started), lineCount — число позиций к пересчёту. Подписчики: Notifications.
tmcInventoryVarianceDetectedDataSchema-
tmcItemCreatedDataSchemascm.tmc-item.created — создана позиция номенклатуры ТМЦ. assetClassId nullable — связь с классом активов опциональна. Подписчики: Notifications, справочники потребителей.
tmcItemDeactivatedDataSchemascm.tmc-item.deactivated — позиция номенклатуры выведена из обращения. Подписчики: Notifications.
tmcItemLowStockDataSchemascm.tmc-item.low-stock — остаток позиции на складе упал ниже minStock. Подписчики: Notifications (снабжение), ana/kpi.
tmcItemStockoutForecastDataSchemascm.tmc-item.stockout-forecast — прогноз исчерпания остатка по среднему расходу за 30 дней (forecastExhaustionDate/daysToExhaustion). Подписчики: Notifications (снабжение), ana/kpi.
tmcItemStockReplenishedDataSchemascm.tmc-item.stock-replenished — остаток вернулся выше minStock (выход из low-stock). Подписчики: Notifications.
tmcItemUpdatedDataSchemascm.tmc-item.updated — изменены атрибуты позиции (changedFields). Подписчики: Notifications, инвалидация справочников.
tmcMovementTypeEnumSchema-
tmcReconciliationMismatchDataSchema-
tmcRequestApprovedDataSchemascm.tmc-request.approved — заявка утверждена (submitted → approved). Подписчики: снабжение, Notifications.
tmcRequestCreatedDataSchemascm.tmc-request.created — создана заявка на ТМЦ (FSM → draft). Подписчики: Notifications.
tmcRequestEmergencyCreatedDataSchemascm.tmc-request.emergency-created — создана АВАРИЙНАЯ заявка на ТМЦ (type=emergency). Отдельный сигнал для приоритетной эскалации. Подписчики: Notifications (снабжение, инженер).
tmcRequestFulfilledDataSchemascm.tmc-request.fulfilled — заявка исполнена; linkedInboundIds связывает её с приходами, закрывшими потребность. Подписчики: ana/kpi, Notifications.
tmcRequestInProgressDataSchemascm.tmc-request.in-progress — снабжение взяло заявку в работу (approved → in_progress). Подписчики: Notifications.
tmcRequestRejectedDataSchemascm.tmc-request.rejected — заявка отклонена (с причиной). Подписчики: Notifications (инициатор).
tmcRequestSubmittedDataSchemascm.tmc-request.submitted — заявка подана на утверждение (draft → submitted). Подписчики: Notifications (утверждающий).
tmcTransferConfirmedDataSchemascm.tmc-transfer.confirmed — склад-получатель подтвердил приёмку перемещения (FSM issued → confirmed). Подписчики: ana/kpi, Notifications.
tmcTransferIssuedDataSchemascm.tmc-transfer.issued — перемещение ТМЦ отгружено со склада-источника (FSM → issued). Подписчики: Notifications (склад-получатель).
tmcUnitEnumSchema-
userAccountCreatedDataSchemahr.user-account.created — создана учётная запись для сотрудника с набором системных ролей (systemRoleIds/systemRoleCodes, минимум одна). Подписчики: Keycloak provisioning, permission-cache, Notifications.
userAccountDeactivatedDataSchemahr.user-account.deactivated — учётная запись деактивирована. triggerSource различает ручную деактивацию и каскад от увольнения сотрудника. Подписчики: Keycloak (отключение subject), Notifications.
userAccountIamProvisioningRequestedDataSchemahr.user-account.iam-provisioning-requested — админ запросил повторный HR-driven local Keycloak provisioning для уже созданной доменной учётки.
userAccountIamProvisioningStatusEnumСостояние async provisioning local Keycloak-user для HR-driven учёток.
userAccountIdentityLinkedDataSchemahr.user-account.identity-linked — учётной записи привязана directory-identity (directoryUid = ipaUniqueID + Keycloak subject) при reconciliation федерированного пользователя (ADR-0056, @mineflow/iam). Эмитится только при реальном изменении. Подписчики: permission-cache invalidation, audit.
userAccountLockedDataSchemahr.user-account.locked — учётная запись заблокирована. triggerSource различает ручную блокировку и авто-блокировку по числу неудачных попыток входа; lockedUntil nullable (null = бессрочно). Подписчики: Notifications.
userAccountLoginChangedDataSchemahr.user-account.login-changed — логин (= Keycloak username) учётной записи переименован администратором. Только для локальных учёток: у федерированных источник истины по username — каталог (ADR-0056), их переименование отвергается на входе. Несёт oldLogin, чтобы подписчик мог найти Keycloak-пользователя, которому ещё не записан keycloakSubject (provisioning не завершился). Подписчики: Keycloak (переименование + гашение сессий).
userAccountPasswordResetIssuedDataSchemahr.user-account.password-reset-issued — выпущен сброс пароля. deliveryChannel — как доставлен временный пароль (email/sms/показ админу), expiresAt — срок действия. Подписчики: Notifications.
userAccountRolesChangedDataSchemahr.user-account.roles-changed — набор ролей учётной записи изменён. Несёт старый/новый наборы и явные дельты (addedRoleCodes/removedRoleCodes) для аудита и точечного обновления. Подписчики: permission-cache invalidation, Keycloak (синхронизация ролей), Notifications.
userAccountStatusEnumСтатус учётной записи: активна / заблокирована / деактивирована.
userAccountUnlockedDataSchemahr.user-account.unlocked — блокировка снята. triggerSource различает ручную разблокировку и авто-снятие по истечении lockedUntil. Подписчики: Notifications.
uuidSchemaОбщая UUID-схема, переиспользуемая во всех payload-схемах каталога событий (uuidSchema в events/<context>/<entity>.ts). .meta({ id: 'Uuid' }) поднимает её в общий $defs при генерации JSON Schema / AsyncAPI, поэтому во всех событиях ссылка идёт на один shared-компонент, а не на инлайн-копию.
violationCancelledDataSchema-
violationOverdueDataSchema-
violationReportedDataSchema-
violationResolvedDataSchema-
watchAssignmentActivatedDataSchemahr.watch-assignment.activated — сотрудник фактически заехал (scheduled → active). Подписчики: hr/personnel (статус → onWatch), Notifications.
watchAssignmentCancelledDataSchemahr.watch-assignment.cancelled — запланированный заезд отменён (с причиной). Подписчики: Notifications.
watchAssignmentCompletedDataSchemahr.watch-assignment.completed — заезд завершён, сотрудник выехал (active → completed). Подписчики: hr/personnel (статус → active), Notifications.
watchAssignmentScheduledDataSchemahr.watch-assignment.scheduled — заезд сотрудника на вахту запланирован (FSM → scheduled), с датами заезда/выезда. Подписчики: Notifications.
watchAssignmentStatusEnumСтатус заезда персонала: запланирован / активен / завершён / отменён.
watchCreatedDataSchemahr.watch.created — создан вахтовый цикл на объекте (период start–end). Подписчики: Notifications.
workOrderCancelledSchemaprd.work-order.cancelled — наряд отменён (draft
workOrderClosedSchemaprd.work-order.closed — наряд закрыт (issued → closed). trigger — авто по утверждению сменного отчёта или ручное закрытие. Подписчики: ana.
workOrderCreatedSchemaprd.work-order.created — наряд заведён (FSM [*] → draft). Подписчики: ana (счётчики доски).
workOrderIssuedSchemaprd.work-order.issued — наряд выдан перед сменой (draft → issued). Подписчики: prd/blocks (старт назначенных блоков, триггер asset-assigned), Notifications (экипаж/начальник), ana.

Functions​

FunctionDescription
buildAsyncApiDocumentСобирает AsyncAPI 3.1.0-документ из каталога событий.
defineEventХелпер для объявления event-каталога с проверкой типов миграций.
makeEnvelopeСобирает конверт события на стороне продюсера: подставляет occurredAt (текущее время), генерирует id и копирует остальные поля из input.
migrateEventEnvelopeПриводит envelope к текущей версии события через миграцию из каталога.
signableEmptyBodyСтандартное «пустое подписываемое тело» для подписываемых роутов БЕЗ доменного тела (BL-58 / ADR-0105): withSignature(z.object({}).strict()) с заданными OpenAPI id/title. Убирает дублирование по множеству body-less подписываемых действий (prd.shift-report.approve, prd.block.accept, prd.production-plan.approve, …), сохраняя различные компоненты в спеке. Use-case тело игнорирует — _signature(s) снимает SignatureGuard до валидации.
withSignaturewithSignature(base) — навешивает на подписываемый DTO зарезервированные опциональные поля транспорта ЭЦП: _signature (одиночная) и _signatures (массив для dual-party, ступень 4). Применяется к .strict()-DTO подписываемых write-роутов, чтобы _signature(s) прошёл ZodValidationPipe (иначе .strict() отвергнет неизвестный ключ). Доменная логика use-case'а эти поля игнорирует — подпись снимает SignatureGuard ДО ValidationPipe. Роуты без тела получают минимальное опциональное тело: withSignature(z.object({}).strict()).