diff --git a/src/Data/Jobsys/Instances.hs b/src/Data/Jobsys/Instances.hs new file mode 100644 index 000000000..ccc1593da --- /dev/null +++ b/src/Data/Jobsys/Instances.hs @@ -0,0 +1,42 @@ +-- SPDX-FileCopyrightText: 2023 Sarah Vaupel +-- +-- SPDX-License-Identifier: AGPL-3.0-or-later + +{-# OPTIONS_GHC -fno-warn-orphans #-} + +module Data.Jobsys.Instances + ( + ) where + +import ClassyPrelude + +import Jobsys.Basics (TimeRelative(..), JobStatus(..)) + +import Model.Types.TH.PathPiece +import Utils.PathPiece (camelToPathPiece', nullaryPathPiece, pathPieceJSON, pathPieceJSONKey) + +import Data.Universe.Class (Finite, Universe) + +-- TODO Refactor: Move to separate modules + + +deriving instance Generic TimeRelative +deriving anyclass instance Finite TimeRelative +deriving anyclass instance Universe TimeRelative +deriving anyclass instance NFData TimeRelative + +nullaryPathPiece ''TimeRelative $ camelToPathPiece' 2 +pathPieceJSON ''TimeRelative +pathPieceJSONKey ''TimeRelative +derivePersistFieldPathPiece ''TimeRelative + + +deriving instance Generic JobStatus +deriving anyclass instance Finite JobStatus +deriving anyclass instance Universe JobStatus +deriving anyclass instance NFData JobStatus + +nullaryPathPiece ''JobStatus $ camelToPathPiece' 2 +pathPieceJSON ''JobStatus +pathPieceJSONKey ''JobStatus +derivePersistFieldPathPiece ''JobStatus diff --git a/src/Import/NoModel.hs b/src/Import/NoModel.hs index b0ab2f01f..69d20029c 100644 --- a/src/Import/NoModel.hs +++ b/src/Import/NoModel.hs @@ -232,6 +232,7 @@ import Data.MultiSet.Instances as Import () import Control.Arrow.Instances as Import () import Data.SemVer.Instances as Import () import Control.Monad.Trans.Random.Instances as Import () +import Data.Jobsys.Instances as Import () import Crypto.Hash as Import (Digest, SHA3_256, SHA3_512) import Crypto.Random as Import (ChaChaDRG, Seed) diff --git a/src/Model/Types/Jobsystem.hs b/src/Model/Types/Jobsystem.hs index 155dd5209..e62da8ec9 100644 --- a/src/Model/Types/Jobsystem.hs +++ b/src/Model/Types/Jobsystem.hs @@ -9,10 +9,7 @@ import Import.NoModel import Jobsys.Basics (TimeRelative, JobStatus) - -nullaryPathPiece ''TimeRelative $ camelToPathPiece' 2 -pathPieceJSON ''TimeRelative -derivePersistFieldJSON ''TimeRelative +import Model.Types.TH.PathPiece newtype JobOccurrence = JobOccurrence @@ -40,6 +37,7 @@ data JobPriority nullaryPathPiece ''JobPriority $ camelToPathPiece' 2 pathPieceJSON ''JobPriority +derivePersistFieldPathPiece ''JobPriority data JobRessource