aboutsummaryrefslogtreecommitdiff
path: root/lib/Persist.hs
diff options
context:
space:
mode:
authorstuebinm2026-05-02 14:31:33 +0200
committerstuebinm2026-05-02 14:45:35 +0200
commit5fa550010cd0d9293d253d9528a4029db26ced54 (patch)
tree77f35fef62e4e725edeaa2a0b23879c49bd9253c /lib/Persist.hs
parent4a1aa2f9ebd4624a677d99a4db77e4a564e56942 (diff)
owntracks: support returning commands
Diffstat (limited to 'lib/Persist.hs')
-rw-r--r--lib/Persist.hs14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/Persist.hs b/lib/Persist.hs
index 7ff3f1d..dbab9bd 100644
--- a/lib/Persist.hs
+++ b/lib/Persist.hs
@@ -93,8 +93,14 @@ derivePersistFieldJSON "Value"
-- We derive these here so that OwnTracks.* can become its own package eventually
derivePersistFieldJSON "OwnTracks.Status"
+derivePersistFieldJSON "OwnTracks.Command"
+data CommandStatus = Queued | Sent
+ deriving (Eq, Show, Read, Generic)
+
+derivePersistField "CommandStatus"
+
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Ticket sql=tt_ticket
Id UUID default=uuid_generate_v4()
@@ -150,6 +156,14 @@ TrackerTicket
tracker TrackerId OnDeleteCascade OnUpdateCascade
UniqueTrackerTicket ticket tracker
+-- owntracks commands enqueued, to be sent to a tracker on next contact
+TrackerCommand sql=tt_tracker_command
+ tracker TrackerId
+ timestamp UTCTime
+ status CommandStatus
+ command OwnTracks.Command
+ deriving Show Eq
+
-- raw frames as received from OBUs
Ping json sql=tt_trip_ping
ticket TicketId Maybe OnDeleteCascade OnUpdateCascade