2021-03-15 19:10:01 +03:00
|
|
|
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())"
|
2021-04-21 15:06:25 +03:00
|
|
|
, " email String? @db.VarChar(200)"
|
2021-03-15 19:10:01 +03:00
|
|
|
, " posts Post[] @relation(\"UserPosts\", references: [id]) @customattr"
|
2021-04-21 15:06:25 +03:00
|
|
|
, " weirdType Unsupported(\"weird\")"
|
2021-03-15 19:10:01 +03:00
|
|
|
, ""
|
|
|
|
, " @@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]
|
2021-04-21 15:06:25 +03:00
|
|
|
, AST._attrs =
|
|
|
|
[ AST.Attribute
|
|
|
|
{ AST._attrName = "db.VarChar"
|
|
|
|
, AST._attrArgs =
|
|
|
|
[ AST.AttrArgUnnamed (AST.AttrArgNumber "200")
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
2021-03-15 19:10:01 +03:00
|
|
|
}
|
|
|
|
)
|
|
|
|
, 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 = []
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
)
|
2021-04-21 15:06:25 +03:00
|
|
|
, AST.ElementField
|
|
|
|
( AST.Field
|
|
|
|
{ AST._name = "weirdType"
|
|
|
|
, AST._type = AST.Unsupported "weird"
|
|
|
|
, AST._typeModifiers = []
|
|
|
|
, AST._attrs = []
|
|
|
|
}
|
|
|
|
)
|
2021-03-15 19:10:01 +03:00
|
|
|
, 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"])
|
|
|
|
]
|
|
|
|
}
|
|
|
|
)
|
|
|
|
]
|