{-# LANGUAGE TemplateHaskell #-}

module Spm.Server.Ctx
  ( ServerCtx(..)
  , sctxSqlPool, sctxInstanceId, sctxJwkSet
  ) where

import Data.UUID (UUID)
import Crypto.JOSE.JWK (JWKSet)
import Database.Persist.Postgresql
import Data.Pool
import Control.Lens.TH

import Type.Reflection (Typeable)
import GHC.Generics (Generic)


data ServerCtx = ServerCtx
  { _sctxSqlPool :: Pool SqlBackend
  , _sctxInstanceId :: UUID
  , _sctxJwkSet :: JWKSet
  } deriving (Generic, Typeable)
makeLenses ''ServerCtx