Ревизии заявки
Сама ревизия хранит только отличия от предыдущей ревизии, кто и когда внес изменения. При необходимости можно просмотреть историю изменений заявки и откатиться к предыдущим версиям.
Исходные требования
- Все изменения изменения заявки должны быть сохранены
- Исключить потерю данных при редактировании заявки несколькими пользователями
- Возможность отката к предыдущим версиям заявки
- Возможность просмотра истории изменений заявки
- Возможность формирования графика интенсивности работы над заявкой
Реализация
Над заявкой могут производится различные действия, которые влияют на ее состояние и данные. При этом
разные действия могут вносить разные изменения в данные заявки. Потому в ревизии есть отдельные поля
action и payloadType, которые позволяют определить тип действия и тип изменений в данных заявки.
Тип данных в поле payload зависит от значения поля payloadType и должно обрабатываться
соответствующим образом.
Такая структура позволяет легко добавлять новые типы действий и изменений в заявке.
Заявка
Для получения актуальной версии заявки необходимо применить все ревизии в порядке их создания.