module Control.Flipper.Adapters.Postgres.Internal.Query
( selectFeatures
, selectActorsByFeatureId
, findFeature
, insertActor
, deleteActor
, insertFeature
, updateFeature
, countActors
, countFeatures
) where
import Control.Flipper.Adapters.Postgres.Models as M
import qualified Control.Flipper.Types as T
selectFeatures :: SqlPersistT IO [Entity Feature]
selectFeatures = selectList [] []
selectActorsByFeatureId :: FeatureId -> SqlPersistT IO [Entity Actor]
selectActorsByFeatureId fId = selectList [ActorFeatureId ==. fId] []
findFeature :: T.FeatureName -> SqlPersistT IO (Maybe (Entity Feature))
findFeature fName = getBy (UniqueFeatureName fName)
insertActor :: Actor -> SqlPersistT IO (Key Actor)
insertActor = insert
deleteActor :: FeatureId -> T.ActorId -> SqlPersistT IO ()
deleteActor fId aId = deleteBy (UniqueActorIdFeatureId aId fId)
insertFeature :: Feature -> SqlPersistT IO (Key Feature)
insertFeature = insert
updateFeature :: M.FeatureId -> M.Feature -> SqlPersistT IO ()
updateFeature = replace
countFeatures :: SqlPersistT IO Int
countFeatures = count ([] :: [Filter Feature])
countActors :: SqlPersistT IO Int
countActors = count ([] :: [Filter Actor])