diff --git a/Архитектура-10-operator-analytics-contract.md b/Архитектура-10-operator-analytics-contract.md index cb5cc55..f1ce3ba 100644 --- a/Архитектура-10-operator-analytics-contract.md +++ b/Архитектура-10-operator-analytics-contract.md @@ -180,8 +180,10 @@ Детали события хранятся как JSON вида `{ "changes": [ { "field": "<код>", "from": "<было>", "to": "<стало>" } ] }`, где `field` — стабильный код параметра, `from` — предыдущее значение (`null` — параметр задан впервые), `to` — новое. Сериализация деталей — `AuditService.ToDetailJson`, форма изменения — `AuditDetails.Set`/ -`AuditDetails.Change`. Ядро отдаёт `changes` как есть; человекочитаемые названия событий, акторов, параметров -и значений — в ресурсах интерфейса (`ru.js`: `operator.event`/`operator.actor`/`operator.field`/`operator.value`). +`AuditDetails.Change`. Изменяющие события (`settings_updated`, `card_moved`, `container_updated`, +`tenant_limit_changed`) пишут «было → стало» по каждому затронутому полю; для сложных значений +(`Dict`/`MyPrompts`/`AiConfigs`) фиксируется факт изменения без значений. Ядро отдаёт `changes` как есть; +человекочитаемые названия событий, акторов, параметров и значений — в ресурсах интерфейса (`ru.js`: `operator.event`/`operator.actor`/`operator.field`/`operator.value`). Прежние записи плоского формата (`{ "login": "..." }`, пары `old*`/`new*`) читаются обратно совместимо. **Коды**: `200`, `401`.