{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DeriveGeneric #-} module Types.Settings where import Data.Aeson import qualified Data.Text as T import Data.OpenApi (ToSchema) import GHC.Generics -- internal imports import Classes data Settings = Settings { settingsBlockRegistration :: Bool , settingsImprintText :: Maybe T.Text , settingsIdleTime :: Int } deriving (Show, Generic) instance DatabaseRepresentation Settings where type Representation Settings = (Bool, Maybe T.Text, Int) instance ToDatabase Settings where toDatabase (Settings reg imprint idleTime) = (reg, imprint, idleTime) instance FromDatabase Settings where fromDatabase (reg, imprint, idleTime) = Settings reg imprint idleTime instance FromJSON Settings instance ToJSON Settings instance ToSchema Settings