47 lines
3.7 KiB
Markdown
47 lines
3.7 KiB
Markdown
# Услуги в публичной записи: временная защита от неверного справочника
|
||
|
||
Проверка 23.10.2026: в `onec_services` у 175 врачей разных направлений сохранён
|
||
один и тот же набор из 18 идентификаторов/названий (3150 строк). В нём смешаны
|
||
анализы, рентген, хирургические и стоматологические процедуры. Это не
|
||
подтверждённая связь «врач → выполняемая услуга». Точное место, где формируется
|
||
неверный список в действующем отправителе 1С, этой проверкой не установлено.
|
||
|
||
До сверки с 1С публичный `GET /api/v1/doctors/{slug}/slots` возвращает `services: []`,
|
||
форма не предлагает услуги и не отправляет `service_id`. Непустой `service_id`
|
||
из старой вкладки отклоняется до создания записи с кодом `service_unavailable`.
|
||
Выбор врача, реального свободного окна, филиала и очередь записи не меняются.
|
||
Импортированный справочник и прошлые записи не удаляются и не переписываются.
|
||
|
||
Для возвращения выбора услуг нужны проверенные привязки к конкретному врачу
|
||
из 1С, проверка этих привязок перед созданием записи и регрессионные примеры
|
||
для стоматолога, ЛОРа и хирурга. Нельзя заменять их общим прайсом клиники или
|
||
угадывать исполнителя по ключевым словам. Это ограничение снимается отдельным
|
||
проверенным изменением; один новый снимок 1С сам по себе его не отключает.
|
||
|
||
## Проверка
|
||
|
||
- `node web/scripts/test-booking-service-safety.mjs` запускать из `web/`,
|
||
используя путь `scripts/test-booking-service-safety.mjs`.
|
||
- `go test ./internal/api -run TestAppointmentRejectsUnverifiedService` —
|
||
отказ до обращения к БД для непроверенной услуги.
|
||
- `TestDoctorServicesQuarantine` — отдельная временная БД через
|
||
`DANA_AUTONOMY_TEST_DSN`. Проверяет пустой публичный список, сохранность
|
||
сырого импорта и создание pending-записи без `service_id`. Не запускать с
|
||
DSN продакшна.
|
||
- На сайте выбрать Шугаева и свободное время: в форме контактов нет списка
|
||
услуг; не создавать проверочную запись на продакшне.
|
||
|
||
## Откат
|
||
|
||
Предыдущий образ: `dana-medical-api:before-booking-service-safety-20261023`.
|
||
Из каталога `/home/mikail/dana-medical`:
|
||
|
||
```sh
|
||
docker tag dana-medical-api:before-booking-service-safety-20261023 dana-medical-api:latest
|
||
docker compose -p dana-medical -f docker-compose.prod.yml up -d --no-deps api
|
||
```
|
||
|
||
Проверить `/api/v1/health`. Такой откат возвращает и неверный список услуг;
|
||
использовать только при регрессии и затем согласовать исправление. БД и
|
||
медиа не откатывать, контейнер bridge не запускать.
|