app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

commit 67e4835073fa87788281d9c257bd7333dbb3e046
parent 4a072e25d0484dea5d8fe3a618f9fea06391e617
Author: triesap <tyson@radroots.org>
Date:   Sun, 24 May 2026 11:38:21 +0000

app: scope reminder schedule keys

Diffstat:
Mcrates/shared/sqlite/migrations/0011_reminders_and_recovery.sql | 5+++--
Mcrates/shared/sqlite/src/reminders.rs | 11+++++++++--
2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/crates/shared/sqlite/migrations/0011_reminders_and_recovery.sql b/crates/shared/sqlite/migrations/0011_reminders_and_recovery.sql @@ -1,5 +1,5 @@ CREATE TABLE reminder_schedules ( - reminder_id TEXT PRIMARY KEY NOT NULL, + reminder_id TEXT NOT NULL, account_id TEXT NOT NULL, farm_id TEXT NOT NULL, order_id TEXT, @@ -25,7 +25,8 @@ CREATE TABLE reminder_schedules ( action_label TEXT, delivery_state TEXT NOT NULL CHECK ( delivery_state IN ('scheduled', 'presented', 'acknowledged', 'resolved') - ) + ), + PRIMARY KEY (account_id, farm_id, reminder_id) ); CREATE TABLE reminder_log_entries ( diff --git a/crates/shared/sqlite/src/reminders.rs b/crates/shared/sqlite/src/reminders.rs @@ -668,7 +668,12 @@ mod tests { .replace_reminder_schedule( "acct_other", other_farm_id, - &ReminderFeedProjection::default(), + &ReminderFeedProjection { + items: vec![ReminderDeadlineProjection { + farm_id: other_farm_id, + ..reminder.clone() + }], + }, ) .expect("other schedule should save"); @@ -680,7 +685,9 @@ mod tests { .expect("other schedule should load"); assert_eq!(loaded.items, vec![reminder]); - assert!(other.is_empty()); + assert_eq!(other.items.len(), 1); + assert_eq!(other.items[0].reminder_id, loaded.items[0].reminder_id); + assert_eq!(other.items[0].farm_id, other_farm_id); } #[test]