From 1f7808ddf16dd3b1d09648a197ce6e701e47f1af Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Tue, 21 Nov 2023 21:37:11 +0000 Subject: [PATCH] reimplement JobOccurrence as newtype; add JSON and PersistField instances --- models/jobsystem.model | 2 +- src/Model/Types/Jobsystem.hs | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/models/jobsystem.model b/models/jobsystem.model index af5fccddd..bb7bd8e08 100644 --- a/models/jobsystem.model +++ b/models/jobsystem.model @@ -1,5 +1,5 @@ -- Jobs to be fetched and distributed to the workers by the scheduler -- part of the *new* job system JobMeta - occurrence JobOccurrence default='{"dnf-terms":[]}' -- when should the job be executed? (Possibly recurring) + occurrence JobOccurrence -- when should the job be executed? (Possibly recurring) deriving Eq Ord Show Generic diff --git a/src/Model/Types/Jobsystem.hs b/src/Model/Types/Jobsystem.hs index 9404307a5..ffbfea8c2 100644 --- a/src/Model/Types/Jobsystem.hs +++ b/src/Model/Types/Jobsystem.hs @@ -1,9 +1,18 @@ module Model.Types.Jobsystem - ( JobOccurrence + ( JobOccurrence(..) ) where import Import.NoModel -type JobOccurrence = Occurrence LocalTime () -- latter is specialtime; not used yet -derivePersistFieldJSON ''Occurrence LocalTime () +newtype JobOccurrence = JobOccurrence + { jobOccurrence :: Occurrence LocalTime () -- latter is specialtime; not used yet + } + deriving (Eq, Ord, Read, Show, Generic) + deriving anyclass (NFData) + +deriveJSON defaultOptions + { tagSingleConstructors = False + , unwrapUnaryRecords = True + } ''JobOccurrence +derivePersistFieldJSON ''JobOccurrence