.. allow the user to set a flag "Performance Test" against an interval
within an activity.
.. the distinction is needed to highlight the section of an activity
that was a test (as opposed to the entire activity containing
test efforts.
.. this is so we can fit them to PD and IR models in the future
avoiding the need to use algorithms to extract TTE type efforts.
.. the update was surprisingly complex since we need to update the
ridefile to record this with the interval and also update the
ride cache as well as adding the bool to all the interval helper
functions.
.. along the way it became clear why user specified colors for
intervals were getting lost (they are not in the ridefile) and
will fix this in another post.
.. NOTE: ridefiles created with this version will not be backward
compatible with earlier versions because they contain a
new field for intervals marked as performance tests.
.. a data processor can now be configured to run on save
.. in addition, the data processor is now passed the operation
that is triggering it: "Manual", "ADD", "UPDATE", "DELETE",
"IMPORT".
.. a new data processor has been added to write a JSON file to
the snippet directory (added to the athlete structure).
.. this is so we can output a snippet every time an activity is
added, updated or deleted (i.e. runs "on save").
.. these JSON snippets can be used to update external datastores
where coaches use other analytic software but don't want to
manually sync GC changes with there external stores.