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

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.
BrigadeCompositionChangedНагрузка hr.brigade.composition-changed.
BrigadeCreatedНагрузка hr.brigade.created.
BrigadeDeactivatedНагрузка hr.brigade.deactivated.
BrigadeUpdatedНагрузка hr.brigade.updated.
BrigadeWorkTypeValueЗначение brigadeWorkTypeEnum.
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.
HrUserAccountRoleChangedНагрузка hr.user-account.role-changed.
HseViolationRelatedToSupplier-
HseViolationSeverity-
MaintenanceCancelledНагрузка eam.maintenance.cancelled.
MaintenanceCompletedНагрузка eam.maintenance.completed.
MaintenanceScheduledНагрузка eam.maintenance.scheduled.
MaintenanceStatusValueЗначение maintenanceStatusEnum.
MovementAppliedНагрузка eam.movement.applied.
OnecSupplierSynced-
Paginationz.infer paginationSchema{ limit: number; cursor?: string }.
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.
PersonnelStatusValueЗначение personnelStatusEnum.
PersonnelTransferredНагрузка hr.personnel.transferred.
PlatformInitialized-
PositionUpdatedНагрузка hr.position.updated.
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-
RefEntityUpdated-
ShiftCreatedНагрузка hr.shift.created.
ShiftForemanAssignedНагрузка hr.shift.foreman-assigned.
ShiftForemanMissingНагрузка hr.shift.foreman-missing.
ShiftReportApprovedНагрузка prd.shift-report.approved.
ShiftReportCreatedНагрузка prd.shift-report.created.
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.
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.
TimesheetAdjustedНагрузка hr.timesheet.adjusted.
TimesheetConfirmedНагрузка hr.timesheet.confirmed.
TimesheetConfirmRequestedНагрузка hr.timesheet.confirm-requested.
TimesheetConfirmRequestedRevertedНагрузка hr.timesheet.confirm-requested-reverted.
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.
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.
UserAccountLockedНагрузка hr.user-account.locked.
UserAccountPasswordResetIssuedНагрузка hr.user-account.password-reset-issued.
UserAccountRolesChangedНагрузка hr.user-account.roles-changed.
UserAccountStatusValueЗначение userAccountStatusEnum.
UserAccountUnlockedНагрузка hr.user-account.unlocked.
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.

Variables

VariableDescription
anaDowntimeEvents-
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.
brigadeCompositionChangedDataSchemahr.brigade.composition-changed — сотрудник добавлен/исключён из состава бригады (action). fromDate/toDate задают период членства. Подписчики: Notifications, downstream-учёт состава смен.
brigadeCreatedDataSchemahr.brigade.created — бригада создана и закреплена за объектом. brigadierId nullable — бригадир может быть назначен позже. Подписчики: Notifications.
brigadeDeactivatedDataSchemahr.brigade.deactivated — бригада расформирована/деактивирована. Подписчики: Notifications.
brigadeUpdatedDataSchemahr.brigade.updated — изменены атрибуты бригады. changedFields перечисляет затронутые поля (для аудита и точечной инвалидации). Подписчики: Notifications.
brigadeWorkTypeEnumТип работ бригады: буровая / взрывная / вспомогательная.
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 }.
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 }.
hrBrigadeEventsЗаписи каталога HR/Brigades: имя события → { version, schema }.
hrIamEventsЗаписи каталога HR/IAM: имя события → { version, schema }.
hrPersonnelEventsЗаписи каталога HR/Personnel: имя события → { version, schema }.
hrPositionEventsЗаписи каталога HR/Position: имя события → { version, schema }.
hrRoleUpdatedDataSchemahr.role.updated — обновлена системная роль (code/version). Подписчики: модули, кэширующие справочник ролей / permission-cache.
hrTimesheetEventsЗаписи каталога HR/Timesheet: имя события → { version, schema }.
hrUserAccountEventsЗаписи каталога HR/User-accounts: имя события → { version, schema }.
hrUserAccountRoleChangedDataSchemahr.user-account.role-changed — роль учётной записи заменена (oldRoleIdnewRoleId). Подписчики: permission-cache invalidation, Notifications.
hrWatchEventsЗаписи каталога HR/Watches: имя события → { version, schema }.
hseEvents-
hseViolationEvents-
hseViolationRelatedToSupplierDataSchema-
hseViolationSeverityEnumhse.violation.related-to-supplier — HSE-нарушение, связанное с поставщиком.
integrationEvents-
integrationOnecEvents-
isoDateSchemaДата-время в формате ISO 8601 / RFC 3339 (строка). Канон для всех временны́х полей событий (occurredAt-подобные shiftDate, approvedAt, …). Хранится как строка, а не Date, чтобы конверт был JSON-сериализуем без потерь (envelope живёт в outbox / Redis Streams).
maintenanceCancelledDataSchemaeam.maintenance.cancelled — запланированное ТО отменено (с причиной). Подписчики: EAM, Notifications.
maintenanceCompletedDataSchemaeam.maintenance.completed — ТО завершено, актив возвращается в работу. Несёт startedAt/completedAt для учёта простоя. Подписчики: ANA (KTG), EAM (сброс счётчика выработки до следующего ТО), 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).
paginationSchemaКурсорная пагинация query-параметров: { limit, cursor }. limit коэрсится из строки (query-string всегда строка), целое 1–200, default 50. cursor — опциональный непрозрачный курсор следующей страницы.
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 опционален, если заезд не привязан к конкретному вахтовому циклу.
personnelStatusEnumСтатус сотрудника: активен / на вахте / в отпуске / уволен.
personnelTransferredDataSchemahr.personnel.transferred — сотрудник переведён на другой производственный объект (с даты effectiveFrom). fromObjectId nullable — для первого закрепления ранее непривязанного сотрудника. Подписчики: Notifications.
platformEvents-
platformInitializedSchemaПроизводственный демо-event — будет заменён реальными событиями PRD/EAM/SCM.
positionUpdatedDataSchemahr.position.updated — изменение записи в справочнике должностей (CRUD на /positions/{id}). docs/modules/hr/user-accounts/events.md § Publish.
prdProductionPlanEventsЗаписи каталога PRD/Production Plans: имя события → { version, schema }.
prdShiftReportEventsЗаписи каталога PRD/Shift Reports: имя события → { 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-
refEntityUpdatedDataSchema-
refsEvents-
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). Запускает 6-шаговую approve-сагу (см. ApproveShiftReportSaga). Подписчики: SCM/EAM/HR/ANA — каждый выполняет свой эффект из саги. Notifications.
shiftReportCreatedSchemaprd.shift-report.created — черновик отчёта создан мастером (status=draft). Подписчики: HR (autofill foreman из последнего hr.shift.foreman-assigned), Notifications (мастер видит подтверждение).
shiftReportRejectedAfterApproveSchemaprd.shift-report.rejected-after-approve — сторно ПОСЛЕ утверждения (approved → rejected). Запускает 6-шаговую 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.
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).
timesheetAdjustedDataSchemahr.timesheet.adjusted — manual_adjust инженером/админом. Несёт previousHoursWorked/previousDowntimeHours для аудита и пересчёта KPI.
timesheetConfirmedDataSchemahr.timesheet.confirmed — draft → confirmed после shift-report.approved. Подписчики: ANA (для построения отчётности по фактической отработке).
timesheetConfirmRequestedDataSchemahr.timesheet.confirm-requested — публикуется из шага 6 (record-timesheet) approve-саги по каждому ShiftPersonnel отчёта. HR-handler ловит событие, находит/создаёт TimesheetEntry в draft и переводит в confirmed, после чего публикует hr.timesheet.confirmed.
timesheetConfirmRequestedRevertedDataSchemahr.timesheet.confirm-requested-reverted — counter-event для сторно (шаг 1 reject-after-approve саги). HR-handler переводит подтверждённый timesheet в reverted и публикует hr.timesheet.reverted.
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.
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.
userAccountLockedDataSchemahr.user-account.locked — учётная запись заблокирована. triggerSource различает ручную блокировку и авто-блокировку по числу неудачных попыток входа; lockedUntil nullable (null = бессрочно). Подписчики: Notifications.
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-компонент, а не на инлайн-копию.
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.

Functions

FunctionDescription
buildAsyncApiDocumentСобирает AsyncAPI 3.1.0-документ из каталога событий.
defineEventХелпер для объявления event-каталога с проверкой типов миграций.
makeEnvelopeСобирает конверт события на стороне продюсера: подставляет occurredAt (текущее время), генерирует id и копирует остальные поля из input.
migrateEventEnvelopeПриводит envelope к текущей версии события через миграцию из каталога.