mirror of
https://github.com/wasp-lang/wasp.git
synced 2024-12-18 22:51:40 +03:00
79 lines
2.2 KiB
Haskell
79 lines
2.2 KiB
Haskell
|
module Psl.Common.ModelTest where
|
||
|
|
||
|
import qualified Psl.Ast.Model as AST
|
||
|
|
||
|
|
||
|
-- | Corresponds to sampleBodyAst below.
|
||
|
sampleBodySchema :: String
|
||
|
sampleBodySchema =
|
||
|
unlines
|
||
|
[ " id Int @id @default(value: autoincrement())"
|
||
|
, " email String?"
|
||
|
, " posts Post[] @relation(\"UserPosts\", references: [id]) @customattr"
|
||
|
, ""
|
||
|
, " @@someattr([id, email], 2 + 4, [posts])"
|
||
|
]
|
||
|
|
||
|
-- | Corresponds to sampleBodySchema above.
|
||
|
sampleBodyAst :: AST.Body
|
||
|
sampleBodyAst =
|
||
|
AST.Body
|
||
|
[ AST.ElementField
|
||
|
( AST.Field
|
||
|
{ AST._name = "id"
|
||
|
, AST._type = AST.Int
|
||
|
, AST._typeModifiers = []
|
||
|
, AST._attrs =
|
||
|
[ AST.Attribute
|
||
|
{ AST._attrName = "id"
|
||
|
, AST._attrArgs = []
|
||
|
}
|
||
|
, AST.Attribute
|
||
|
{ AST._attrName = "default"
|
||
|
, AST._attrArgs =
|
||
|
[ AST.AttrArgNamed "value" (AST.AttrArgFunc "autoincrement")
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
)
|
||
|
, AST.ElementField
|
||
|
( AST.Field
|
||
|
{ AST._name = "email"
|
||
|
, AST._type = AST.String
|
||
|
, AST._typeModifiers = [AST.Optional]
|
||
|
, AST._attrs = []
|
||
|
}
|
||
|
)
|
||
|
, AST.ElementField
|
||
|
( AST.Field
|
||
|
{ AST._name = "posts"
|
||
|
, AST._type = AST.UserType "Post"
|
||
|
, AST._typeModifiers = [AST.List]
|
||
|
, AST._attrs =
|
||
|
[ AST.Attribute
|
||
|
{ AST._attrName = "relation"
|
||
|
, AST._attrArgs =
|
||
|
[ AST.AttrArgUnnamed (AST.AttrArgString "UserPosts")
|
||
|
, AST.AttrArgNamed "references" (AST.AttrArgFieldRefList ["id"])
|
||
|
]
|
||
|
}
|
||
|
, AST.Attribute
|
||
|
{ AST._attrName = "customattr"
|
||
|
, AST._attrArgs = []
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
)
|
||
|
, AST.ElementBlockAttribute
|
||
|
( AST.Attribute
|
||
|
{ AST._attrName = "someattr"
|
||
|
, AST._attrArgs =
|
||
|
[ AST.AttrArgUnnamed (AST.AttrArgFieldRefList ["id", "email"])
|
||
|
, AST.AttrArgUnnamed (AST.AttrArgUnknown "2 + 4")
|
||
|
, AST.AttrArgUnnamed (AST.AttrArgFieldRefList ["posts"])
|
||
|
]
|
||
|
}
|
||
|
)
|
||
|
]
|