Перейти к основному содержимому

Ревизии заявки

Сама ревизия хранит только отличия от предыдущей ревизии, кто и когда внес изменения. При необходимости можно просмотреть историю изменений заявки и откатиться к предыдущим версиям.

Исходные требования

  • Все изменения изменения заявки должны быть сохранены
  • Исключить потерю данных при редактировании заявки несколькими пользователями
  • Возможность отката к предыдущим версиям заявки
  • Возможность просмотра истории изменений заявки
  • Возможность формирования графика интенсивности работы над заявкой

Реализация

Над заявкой могут производится различные действия, которые влияют на ее состояние и данные. При этом разные действия могут вносить разные изменения в данные заявки. Потому в ревизии есть отдельные поля action и payloadType, которые позволяют определить тип действия и тип изменений в данных заявки.

Тип данных в поле payload зависит от значения поля payloadType и должно обрабатываться соответствующим образом.

Такая структура позволяет легко добавлять новые типы действий и изменений в заявке.

Заявка

Для получения актуальной версии заявки необходимо применить все ревизии в порядке их создания.