ЕСОЗ - публічна документація

IL.Deactivate Division_UA

Специфікація

Apiary

Сервісна логіка

  1. Тільки автентифікований та автиризований користувач може використовувати даний сервіс.

  2. Тільки відділення в статусі ACTIVE може бути деактивовано

  3. Юридична особа може деактивувати тільки свої відділення

Автентифікація

  1. Перевірити валідність токену доступу

    1. Повернути 401 помилку, якщо перевірка неуспішна

  2. Перевірити скоупи на можливість виконання даної дії (scope = 'division:deactivate')

    1. Повернути 403 помилку в разі невалідних скоупів

Перевірити відділення

  1. Перевірити, що відділення з таким ID існує в системі (is_active = true)

    1. В разі помилки - повернути код 404

  2. Перевірити, що відділення відновиться до тієї ж юридичної особи, що і користувач

    1. В разі помилки - повернути код 403

Перевірити медичне обслуговування

Перевірити, що відсутні активні медичні обслуговування у пов'язаного відділення

  1. Знайти медичне обслуговування по даному відділенню в статусі ACTIVE

    1. Якщо результати пошуку містять будь-які записи - повернути помилку 409 (Division cannot be deactivated - active healthcare services exists)

Перевірити обладнання

Перевірити, що відсутні активні записи в таблиці equipments по даному відділенню

  1. Знайти обладнання по відділенню в статусі ACTIVE 

    1. Якщо результати пошуку містять будь-які записи - повернути помилку 409 (Division cannot be deactivated - active equipments exists)

Перевірити можливість зміни статусу

Тільки відділення в статусі ACTIVE можуть бути деактивовані

Активувати зміну статусу

  1. 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

ЕСОЗ - публічна документація