Goal
Add automatic versioning to events in Evsy, where a new version is created only when the set of linked fields is changed. This helps track the evolution of event structure without cluttering history with cosmetic changes (e.g. description edits).
Behavior
- Each event can have multiple versions.
- Version 0 is created automatically when the event is first created.
- A new version is automatically created when the set of fields is modified (add/remove).
- Users can optionally skip versioning and update the current version in place using a toggle in the UI (
Update current version switch).
- Only changes to the field list trigger versioning. Updates to name, description, tags, or links do not create a new version.
Backend Tasks
Frontend Tasks
Notes
- Field ordering should be ignored when detecting differences (compare as sets).
- Only field changes should affect versioning.
- Most users will work with the latest version unless navigating history explicitly.
Goal
Add automatic versioning to events in Evsy, where a new version is created only when the set of linked fields is changed. This helps track the evolution of event structure without cluttering history with cosmetic changes (e.g. description edits).
Behavior
Update current versionswitch).Backend Tasks
EventVersionmodel linked toEventid,event_id,version_number,created_at,fieldsEvent ↔ FieldintoEventVersion(event_version_fieldtable)version 0update_current_versionisfalse, create a new versionGET /events/{id}/versions— list of all versionsGET /events/{id}/versions/{version_id}— details of a specific versionGET /events/{id}/fields?version={version_number}— get fields for a specific version (or latest if omitted)POST /events/{id}/fields— allow field updates with an optional flagupdate_current_versionFrontend Tasks
Notes