каркас: домен, генерация типов фронта, стенд и карточки задач
Контракт в коде: КИО по нормативу, 43 события WS по шести союзам направлений, таймеры ГОСТ, таксономия E1–E6, шесть компетенций радара. make types гоняет их через JSON Schema в generated.ts, тест ловит забытую регенерацию. Стенд: docker compose postgres + backend, health отвечает, база досягаема из контейнера бэкенда. Makefile не врёт — нереализованные цели падают и называют карточку, которая их закроет. frontend/.npmrc: под WSL2 npm install зависает на дефолтных 15 сокетах.
This commit is contained in:
parent
4425c7d4ca
commit
7b7dd38e9f
36 changed files with 4997 additions and 0 deletions
64
backend/app/domain/classifiers.py
Normal file
64
backend/app/domain/classifiers.py
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
"""Классификаторы ДДС, типы происшествий, уровни сложности.
|
||||
|
||||
Норматив: docs/spec/NORMATIVES.md#классификаторы-ддс
|
||||
"""
|
||||
|
||||
from enum import StrEnum
|
||||
|
||||
|
||||
class DDSCode(StrEnum):
|
||||
"""Дежурно-диспетчерская служба, в которую уходит карточка."""
|
||||
|
||||
FIRE = "01"
|
||||
POLICE = "02"
|
||||
MEDICAL = "03"
|
||||
OTHER = "04"
|
||||
GKH = "gkh"
|
||||
|
||||
|
||||
class IncidentType(StrEnum):
|
||||
"""Тип происшествия. Совпадает с полем `type` сценария."""
|
||||
|
||||
FIRE = "fire"
|
||||
MEDICAL = "medical"
|
||||
POLICE = "police"
|
||||
OTHER = "other"
|
||||
GKH = "gkh"
|
||||
ERA_GLONASS = "era_glonass"
|
||||
|
||||
|
||||
class Level(StrEnum):
|
||||
"""Уровень сложности сценария."""
|
||||
|
||||
L1 = "L1"
|
||||
L2 = "L2"
|
||||
L3 = "L3"
|
||||
|
||||
|
||||
DDS_LABELS: dict[DDSCode, str] = {
|
||||
DDSCode.FIRE: "01 — МЧС",
|
||||
DDSCode.POLICE: "02 — полиция",
|
||||
DDSCode.MEDICAL: "03 — скорая помощь",
|
||||
DDSCode.OTHER: "04 — прочие службы",
|
||||
DDSCode.GKH: "ЖКХ",
|
||||
}
|
||||
|
||||
INCIDENT_LABELS: dict[IncidentType, str] = {
|
||||
IncidentType.FIRE: "Пожар",
|
||||
IncidentType.MEDICAL: "Медицинский вызов",
|
||||
IncidentType.POLICE: "Правонарушение",
|
||||
IncidentType.OTHER: "Прочее",
|
||||
IncidentType.GKH: "Авария ЖКХ",
|
||||
IncidentType.ERA_GLONASS: "ДТП, автовызов ЭРА-ГЛОНАСС",
|
||||
}
|
||||
|
||||
#: Штатное соответствие типа происшествия и службы. Используется как значение
|
||||
#: по умолчанию при выводе ground_truth сценария; сценарий вправе переопределить.
|
||||
DDS_BY_INCIDENT: dict[IncidentType, DDSCode] = {
|
||||
IncidentType.FIRE: DDSCode.FIRE,
|
||||
IncidentType.MEDICAL: DDSCode.MEDICAL,
|
||||
IncidentType.POLICE: DDSCode.POLICE,
|
||||
IncidentType.OTHER: DDSCode.OTHER,
|
||||
IncidentType.GKH: DDSCode.GKH,
|
||||
IncidentType.ERA_GLONASS: DDSCode.MEDICAL,
|
||||
}
|
||||
Loading…
Reference in a new issue