store
store
¶
Transactional SQLite persistence for Succès.
The schema is local-first but sync-ready: every mutation appends an immutable operation, deletes are tombstones, and updates use millisecond LWW clocks. No remote service is implied or reported until one is configured.
Classes¶
SuccesError
¶
Bases: ValueError
Domain validation or conflict error safe to show to the user.
SuccesNotFound
¶
Bases: SuccesError
Requested Succès entity was not found.
SuccesStore
¶
Thread-safe facade using one short-lived SQLite connection per action.
Source code in src/diapason/succes/store.py
Methods:¶
reschedule_series
¶
reschedule_series(
task_id: str,
scheduled_date: str,
*,
op_id: str | None = None,
) -> dict[str, Any]
Shift every occurrence of a recurrence by the same day offset.
The dragged occurrence defines the delta between its current date and
the drop target; all sibling occurrences (same template_id) move by
that delta. Occurrences without a date are left untouched, and the
recurrence rule itself is edited separately on the Récurrences page.