Услуги для граждан¶
Платформа содержит и портал услуг для гражданина, и очередь для
оператора. Обе поверхности стоят на одной модели данных: каталог
gov_services, заявления gov_applications и журнал событий, работающий
только на добавление.
Словарь согласован с CPSV-AP 3.2.0 (SEMIC — Public Service, Evidence, Life Event); словарь результатов следует нидерландской модели ZGW.
Две поверхности¶
| Поверхность | Кто | Путь | Право |
|---|---|---|---|
| Портал гражданина | Любой вошедший пользователь | /me/services, /me/applications, /me/references, /me/notifications, /me/payments, /me/appointments |
вход выполнен |
| Очередь оператора | Менеджер / должностное лицо | /manager/requests, /manager/dashboard |
gov.review |
Режимы исполнения¶
| Режим | Значение |
|---|---|
auto |
Читается напрямую из реестра и выдаётся (справки, подтверждения). Человек не участвует — исполняется в одной транзакции при подаче. |
manual |
Исполняется после рассмотрения и решения оператора. |
Машина состояний заявления¶
Допустимые переходы объявлены в домене один раз, а SQL репозитория
дублирует их через WHERE status IN (...) — это закрывает гонку двух решений,
пришедших одновременно.
stateDiagram-v2
[*] --> submitted
submitted --> registered
submitted --> cancelled
registered --> in_review
registered --> info_required
registered --> approved
registered --> completed
registered --> rejected
registered --> expired
in_review --> info_required
in_review --> approved
in_review --> completed
in_review --> rejected
info_required --> in_review
info_required --> approved
info_required --> completed
info_required --> rejected
approved --> completed
completed --> [*]
rejected --> [*]
cancelled --> [*]
expired --> [*]
| Статус | Значение |
|---|---|
submitted |
Гражданин отправил |
registered |
Официально зарегистрировано — пошёл отсчёт SLA |
in_review |
Оператор рассматривает |
info_required |
Ждём дополнительные документы от гражданина |
approved |
Решение принято, но результат ещё не выдан (физическое удостоверение, свидетельство) |
completed |
Результат выдан |
rejected · cancelled · expired |
Терминальные состояния |
Разница между approved и completed
Если результат можно выдать сразу (справка), заявление переходит прямо в
completed — промежуточное состояние было бы шумом. Если результат
физический, approved означает «решено, не выдано», а completed
наступает позже.
Словарь результатов¶
granted · refused · withdrawn · not_admissible · processed
Словарь хода дела ведомство может определять само, но именно общий словарь результатов делает возможными отчётность и статистику.
Эндпоинты для гражданина¶
| Метод | Путь | Что |
|---|---|---|
GET |
/api/v1/gov/services |
Каталог услуг |
GET |
/api/v1/gov/life-events |
Сгруппировано по жизненным событиям |
GET |
/api/v1/gov/overview |
Сводка на главной |
GET · POST |
/api/v1/gov/applications |
Список / подача |
GET |
/api/v1/gov/applications/{id}/timeline |
Журнал хода дела |
POST |
/api/v1/gov/applications/{id}/cancel |
Гражданин отзывает |
POST |
/api/v1/gov/applications/{id}/provide-info |
Дослать документы |
GET · POST |
/api/v1/gov/references |
Справки: список / заказ |
GET |
/api/v1/gov/notifications |
Уведомления |
POST |
/api/v1/gov/notifications/{id}/read, /read-all |
Отметить прочитанным |
GET |
/api/v1/gov/payments |
Налоги, пошлины, штрафы |
POST |
/api/v1/gov/payments/{id}/pay |
Оплатить |
GET · POST |
/api/v1/gov/appointments |
Запись на приём |
POST |
/api/v1/gov/appointments/{id}/cancel |
Отменить запись |
Все записи проходят через ограничитель govWrite (30/мин, burst 15).
Очередь оператора¶
К /api/v1/gov/officer/* допускаются только обладатели gov.review. Проверка
выполняется как middleware на уровне маршрута и не повторяется в каждом
обработчике.
| Метод | Путь | Что |
|---|---|---|
GET |
/officer/stats |
Сводка по очереди (отдельно от гражданской) |
GET |
/officer/queue |
Очередь с фильтрами |
GET |
/officer/queue/{id} |
Одно заявление |
POST |
/officer/queue/{id}/assign |
Назначить себе или другому |
POST |
/officer/queue/{id}/decide |
Решение (approved / rejected) |
POST |
/officer/queue/{id}/complete |
Выдать результат и закрыть |
POST |
/officer/queue/{id}/request-info |
Запросить у гражданина данные |
Публичный каталог¶
Каталог читается без входа:
GET /api/v1/catalog/services— опубликованные услугиGET /api/v1/catalog/services/{id}— паспорт одной услугиGET /api/v1/catalog/life-events— жизненные события
Его источник истины — реестр услуг (R1), см. Реестр и Relay. Услуга не появляется в публичном каталоге, пока не опубликована.