В большинстве моделей мы не используем хардовое удаление объектов.
Это сделано для облегчения кейсов восстановления удаленных данных.
Вместо этого мы помечаем объекты, как удаленные с помощью служебного атрибута
deletedAt.Удаление объекта
Чтобы удалить объект – нужно обновить его, проставив в атрибут
deletedAt в текущее время в формате ISO. Пример:mutation { updateOrganization(id: "5cb19b4a-a215-466e-8214-01c24942d962", data: { deletedAt: "2023-06-02T11:38:25Z" }) { id } }
Получение неудаленных данных
Чтобы получить из запроса только неудаленные объекты, делать ничего не нужно :)
Мы по умолчанию убираем из выдачи удаленные объекты.
Получение удаленных объектов
Чтобы включить в выборку все объекты, включая удаленные, необходимо добавить query-параметр
deleted=true в адрес запроса.Для фильтрации объектов используется фильтры на поле
deletedAt.
Так, например, выглядит запрос на получение всех удаленных контактов жителей, которые привязаны к удаленным домам.{ allContacts (where: { deletedAt_not: null property: { deletedAt: null } }) { id property { id } } }
При этом URL запроса выглядит следующим образом: https://condo.d.doma.ai/admin/api?deleted=true