FastGQL Schema Fragment
While editing your schema, you might find it useful to include this GraphQL schema fragment. It sets up the definitions of the directives, etc. (like @generate) that you’ll use in your schema. If your editor is GraphQL aware, it may give you errors if you don’t have this available.
Fragment
# ================== schema generation fastgql directives  ==================
# ================== schema generation fastgql directives  ==================
# Generate Resolver directive tells fastgql to generate an automatic resolver for a given field# @generateResolver can only be defined on Query and Mutation fields.# adding pagination, ordering, aggregate, filter to false will disable the generation of the corresponding arguments# for filter to work @generateFilterInput must be defined on the object, if its missing you will get an error# recursive will generate pagination, filtering, ordering and aggregate for all the relations of the object,# this will modify the object itself and add arguments to the object fields.directive @generate(filter: Boolean = True, pagination: Boolean = True, ordering: Boolean = True, aggregate: Boolean = True, recursive: Boolean = True, filterTypeName: String) on FIELD_DEFINITION
# Generate mutations for an objectdirective @generateMutations(create: Boolean = True, delete: Boolean = True, update: Boolean = True) on OBJECT
# Generate filter input on an objectdirective @generateFilterInput(description: String) repeatable on OBJECT | INTERFACE
directive @isInterfaceFilter on INPUT_FIELD_DEFINITION
# ================== Directives supported by fastgql for Querying ==================
# Table directive is defined on OBJECTS, if no table directive is defined defaults are assumed# i.e <type_name>, "postgres", ""directive @table(name: String!, dialect: String! = "postgres", schema: String = "") on OBJECT | INTERFACE
# Relation directive defines relations cross tables and dialectsdirective @relation(type: _relationType!, fields: [String!]!, references: [String!]!, manyToManyTable: String = "", manyToManyFields: [String] = [], manyToManyReferences: [String] = []) on FIELD_DEFINITION
# This will make the field skipped in select, this is useful for fields that are not columns in the database, and you want to resolve it manuallydirective @fastgqlField(skipSelect: Boolean = True) on FIELD_DEFINITION
# Typename is the field name that will be used to resolve the type of the interface,# default model is the default model that will be used to resolve the interface if none is found.directive @typename(name: String!) on INTERFACE
# =================== Default Scalar types supported by fastgql ===================scalar Map# ================== Default Filter input types supported by fastgql ==================
enum _relationType {    ONE_TO_ONE    ONE_TO_MANY    MANY_TO_MANY}
enum _OrderingTypes {    ASC    DESC    ASC_NULL_FIRST    DESC_NULL_FIRST    ASC_NULL_LAST    DESC_NULL_LAST}
type _AggregateResult {    count: Int!}
input StringComparator {    eq: String    neq: String    contains: [String]    notContains: [String]    like: String    ilike: String    suffix: String    prefix: String    isNull: Boolean}
input StringListComparator {    eq: [String]    neq: [String]    contains: [String]    containedBy: [String]    overlap: [String]    isNull: Boolean}
input IntComparator {    eq: Int    neq: Int    gt: Int    gte: Int    lt: Int    lte: Int    isNull: Boolean}
input IntListComparator {    eq: [Int]    neq: [Int]    contains: [Int]    contained: [Int]    overlap: [Int]    isNull: Boolean}
input FloatComparator {    eq: Float    neq: Float    gt: Float    gte: Float    lt: Float    lte: Float    isNull: Boolean}
input FloatListComparator {    eq: [Float]    neq: [Float]    contains: [Float]    contained: [Float]    overlap: [Float]    isNull: Boolean}
input BooleanComparator {    eq: Boolean    neq: Boolean    isNull: Boolean}
input BooleanListComparator {    eq: [Boolean]    neq: [Boolean]    contains: [Boolean]    contained: [Boolean]    overlap: [Boolean]    isNull: Boolean}