packages feed

orville-postgresql-1.0.0.0: test/Test/Entities/User.hs

module Test.Entities.User
  ( User (..)
  , table
  , generate
  )
where

import qualified Data.Text as T
import qualified Hedgehog as HH
import qualified Hedgehog.Range as Range

import qualified Orville.PostgreSQL as Orville

import qualified Test.PgGen as PgGen

data User = User
  { user :: T.Text
  }
  deriving (Show, Eq)

table :: Orville.TableDefinition Orville.NoKey User User
table =
  Orville.mkTableDefinitionWithoutKey "user" userMarshaller

userMarshaller :: Orville.SqlMarshaller User User
userMarshaller =
  User
    <$> Orville.marshallField user userField

userField :: Orville.FieldDefinition Orville.NotNull T.Text
userField =
  Orville.unboundedTextField "user"

generate :: HH.Gen User
generate =
  User
    <$> PgGen.pgText (Range.constant 0 10)