ЕСОЗ - публічна документація
IL.Deactivate Division_UA
Специфікація
Сервісна логіка
Тільки автентифікований та автиризований користувач може використовувати даний сервіс.
Тільки відділення в статусі ACTIVE може бути деактивовано
Юридична особа може деактивувати тільки свої відділення
Автентифікація
Перевірити валідність токену доступу
Повернути 401 помилку, якщо перевірка неуспішна
Перевірити скоупи на можливість виконання даної дії (scope = 'division:deactivate')
Повернути 403 помилку в разі невалідних скоупів
Перевірити відділення
Перевірити, що відділення з таким ID існує в системі (is_active = true)
В разі помилки - повернути код 404
Перевірити, що відділення відновиться до тієї ж юридичної особи, що і користувач
В разі помилки - повернути код 403
Перевірити медичне обслуговування
Перевірити, що відсутні активні медичні обслуговування у пов'язаного відділення
Знайти медичне обслуговування по даному відділенню в статусі ACTIVE
Якщо результати пошуку містять будь-які записи - повернути помилку 409 (Division cannot be deactivated - active healthcare services exists)
Перевірити обладнання
Перевірити, що відсутні активні записи в таблиці equipments по даному відділенню
Знайти обладнання по відділенню в статусі ACTIVE
Якщо результати пошуку містять будь-які записи - повернути помилку 409 (Division cannot be deactivated - active equipments exists)
Перевірити можливість зміни статусу
Тільки відділення в статусі ACTIVE можуть бути деактивовані
Активувати зміну статусу
ACTIVE → INACTIVE
В інших випадках - повернути помилку 409 ('{current_status} division cannot be DEACTIVATED')
Зберегти об'єкт до DB
Параметр | Джерело | Опис |
---|---|---|
status | INACTIVE | |
updated_at | Timestamp: now() | Отримати поточні дата-час |
updated_by | Token: user_id |
Деактивувати забезпечення відділеннь по програмі
Тільки для юридичної особи типу PHARMACY (відповідно до link).
Для пов'язаних відділень деактивувати пов'язані активні відділення по медичній програмі:
встановити is_active = false
встановити deactivate_reason = AUTO_DIVISION_DEACTIVATION
встановити updated_at, updated by
ЕСОЗ - публічна документація