From 3dddcd1f95b5850932a1773f3bcb976757f2b44e Mon Sep 17 00:00:00 2001 From: "Zimin A.N." Date: Wed, 6 May 2026 17:34:39 +0300 Subject: [PATCH] =?UTF-8?q?feat(cuod-bundle):=20spacecraft.status=20?= =?UTF-8?q?=E2=80=94=20FK=20=D0=BD=D0=B0=20spacecraft=5Fstatus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Был inline enum [PLANNED, ACTIVE, INACTIVE, DECAYED, LOST] — но spacecraft_status справочник существует с нормализованными codes: PLANNED, LAUNCHED, OPERATIONAL, STANDBY, DEGRADED, DECOMMISSIONED, LOST. Теперь spacecraft.status = x-references на spacecraft_status.code. Profit: - i18n названий статусов (Запланирован/Эксплуатация/...) - description per status (что значит DEGRADED vs DECOMMISSIONED) - Расширяемо без schema migration Breaking change: existing 14 records со status=ACTIVE/DECAYED не пройдут validation. Решение: full re-import bundle на staging (TRUNCATE + restart ordinis-app → CuodBundleStartupRunner пересоздаст все). --- .../src/main/resources/bundles/cuod/spacecraft.schema.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/spacecraft.schema.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/spacecraft.schema.json index 05e4242..5714cf7 100644 --- a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/spacecraft.schema.json +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/spacecraft.schema.json @@ -60,7 +60,9 @@ }, "status": { "type": "string", - "enum": ["PLANNED", "ACTIVE", "INACTIVE", "DECAYED", "LOST"] + "description": "FK на spacecraft_status.code", + "pattern": "^[A-Z][A-Z0-9_]{1,31}$", + "x-references": "spacecraft_status.code" }, "orbit": { "type": "object",