description |
---|
Entities is the backbone of the data model and translate into the db schema |
Entities are the top-level type definitions in the input schema marked with the @entity
directive. Entity fields are normally built-in scalar types but can also be
- an array of primitive types
- an enum,
- an entity reference
- an algebraic type
All entities have an auto-generated ID
field which is reserved and cannot be used in the input schema.
The following scalar types are supported:
Boolean
String
Int
Float
BigInt
supports arbitrarily large numbers and is useful for representing e.g. large numbersuint256
Bytes
Arrays follow the GraphQL spec.
By default, each field is nullable. To indicate a no-null constraint mark the field with !
If a property must be unique across all entities of the given type, mark it with a built-in @unique
directive
Schema comments are natively supported and are propagated to the output schema
"It is just a boring nine-five person"
type Person @entity {
name: String!
married: Boolean
age: Int
"one person, one account, one life"
account: Bytes! @unique
salary: BigInt
interests: [String]
}