# DO NOT MODIFY THIS FILE. This file is automatically generated by Tina
"""References another document, used as a foreign key"""
scalar Reference

""""""
scalar JSON

type SystemInfo {
  filename: String!
  title: String
  basename: String!
  breadcrumbs(excludeExtension: Boolean): [String!]!
  path: String!
  relativePath: String!
  extension: String!
  template: String!
  collection: Collection!
}

type Folder {
  name: String!
  path: String!
}

type PageInfo {
  hasPreviousPage: Boolean!
  hasNextPage: Boolean!
  startCursor: String!
  endCursor: String!
}

""""""
interface Node {
  id: ID!
}

""""""
interface Document {
  id: ID!
  _sys: SystemInfo
  _values: JSON!
}

"""A relay-compliant pagination connection"""
interface Connection {
  totalCount: Float!
  pageInfo: PageInfo!
}

type Query {
  getOptimizedQuery(queryString: String!): String
  collection(collection: String): Collection!
  collections: [Collection!]!
  node(id: String): Node!
  document(collection: String, relativePath: String): DocumentNode!
  about(relativePath: String): About!
  aboutConnection(before: String, after: String, first: Float, last: Float, sort: String, filter: AboutFilter): AboutConnection!
  post(relativePath: String): Post!
  postConnection(before: String, after: String, first: Float, last: Float, sort: String, filter: PostFilter): PostConnection!
  projets(relativePath: String): Projets!
  projetsConnection(before: String, after: String, first: Float, last: Float, sort: String, filter: ProjetsFilter): ProjetsConnection!
  contact(relativePath: String): Contact!
  contactConnection(before: String, after: String, first: Float, last: Float, sort: String, filter: ContactFilter): ContactConnection!
  jdb(relativePath: String): Jdb!
  jdbConnection(before: String, after: String, first: Float, last: Float, sort: String, filter: JdbFilter): JdbConnection!
  createurs(relativePath: String): Createurs!
  createursConnection(before: String, after: String, first: Float, last: Float, sort: String, filter: CreateursFilter): CreateursConnection!
  jeux(relativePath: String): Jeux!
  jeuxConnection(before: String, after: String, first: Float, last: Float, sort: String, filter: JeuxFilter): JeuxConnection!
}

input DocumentFilter {
  about: AboutFilter
  post: PostFilter
  projets: ProjetsFilter
  contact: ContactFilter
  jdb: JdbFilter
  createurs: CreateursFilter
  jeux: JeuxFilter
}

type DocumentConnectionEdges {
  cursor: String!
  node: DocumentNode
}

type DocumentConnection implements Connection {
  pageInfo: PageInfo!
  totalCount: Float!
  edges: [DocumentConnectionEdges]
}

type Collection {
  name: String!
  slug: String!
  label: String
  path: String!
  format: String
  matches: String
  templates: [JSON]
  fields: [JSON]
  documents(before: String, after: String, first: Float, last: Float, sort: String, filter: DocumentFilter, folder: String): DocumentConnection!
}

union DocumentNode = About | Post | Projets | Contact | Jdb | Createurs | Jeux | Folder

type About implements Node & Document {
  title: String!
  seo_title: String!
  slug: String
  description: String
  body: JSON
  id: ID!
  _sys: SystemInfo!
  _values: JSON!
}

input StringFilter {
  startsWith: String
  eq: String
  exists: Boolean
  in: [String]
}

input RichTextFilter {
  startsWith: String
  eq: String
  exists: Boolean
}

input AboutFilter {
  title: StringFilter
  seo_title: StringFilter
  slug: StringFilter
  description: StringFilter
  body: RichTextFilter
}

type AboutConnectionEdges {
  cursor: String!
  node: About
}

type AboutConnection implements Connection {
  pageInfo: PageInfo!
  totalCount: Float!
  edges: [AboutConnectionEdges]
}

type Post implements Node & Document {
  title: String!
  seo_title: String!
  summary: String
  toc: Boolean
  description: String
  slug: String
  image: String
  date: String
  author: [String]
  tags: [String]
  categories: [String]
  body: JSON
  id: ID!
  _sys: SystemInfo!
  _values: JSON!
}

input BooleanFilter {
  eq: Boolean
  exists: Boolean
}

input ImageFilter {
  startsWith: String
  eq: String
  exists: Boolean
  in: [String]
}

input DatetimeFilter {
  after: String
  before: String
  eq: String
  exists: Boolean
  in: [String]
}

input PostFilter {
  title: StringFilter
  seo_title: StringFilter
  summary: StringFilter
  toc: BooleanFilter
  description: StringFilter
  slug: StringFilter
  image: ImageFilter
  date: DatetimeFilter
  author: StringFilter
  tags: StringFilter
  categories: StringFilter
  body: RichTextFilter
}

type PostConnectionEdges {
  cursor: String!
  node: Post
}

type PostConnection implements Connection {
  pageInfo: PageInfo!
  totalCount: Float!
  edges: [PostConnectionEdges]
}

type Projets implements Node & Document {
  title: String!
  seo_title: String!
  summary: String
  description: String
  slug: String
  toc: Boolean
  feature_image: String
  image: String
  date: String
  author: [String]
  project_types: [String]
  tech_stack: [String]
  body: JSON
  id: ID!
  _sys: SystemInfo!
  _values: JSON!
}

input ProjetsFilter {
  title: StringFilter
  seo_title: StringFilter
  summary: StringFilter
  description: StringFilter
  slug: StringFilter
  toc: BooleanFilter
  feature_image: StringFilter
  image: ImageFilter
  date: DatetimeFilter
  author: StringFilter
  project_types: StringFilter
  tech_stack: StringFilter
  body: RichTextFilter
}

type ProjetsConnectionEdges {
  cursor: String!
  node: Projets
}

type ProjetsConnection implements Connection {
  pageInfo: PageInfo!
  totalCount: Float!
  edges: [ProjetsConnectionEdges]
}

type Contact implements Node & Document {
  title: String!
  seo_title: String!
  description: String
  id: ID!
  _sys: SystemInfo!
  _values: JSON!
}

input ContactFilter {
  title: StringFilter
  seo_title: StringFilter
  description: StringFilter
}

type ContactConnectionEdges {
  cursor: String!
  node: Contact
}

type ContactConnection implements Connection {
  pageInfo: PageInfo!
  totalCount: Float!
  edges: [ContactConnectionEdges]
}

type Jdb implements Node & Document {
  title: String!
  seo_title: String!
  description: String
  body: JSON
  id: ID!
  _sys: SystemInfo!
  _values: JSON!
}

input JdbFilter {
  title: StringFilter
  seo_title: StringFilter
  description: StringFilter
  body: RichTextFilter
}

type JdbConnectionEdges {
  cursor: String!
  node: Jdb
}

type JdbConnection implements Connection {
  pageInfo: PageInfo!
  totalCount: Float!
  edges: [JdbConnectionEdges]
}

type Createurs implements Node & Document {
  title: String!
  seo_title: String!
  summary: String
  slug: String
  feature_image: String
  body: JSON
  id: ID!
  _sys: SystemInfo!
  _values: JSON!
}

input CreateursFilter {
  title: StringFilter
  seo_title: StringFilter
  summary: StringFilter
  slug: StringFilter
  feature_image: StringFilter
  body: RichTextFilter
}

type CreateursConnectionEdges {
  cursor: String!
  node: Createurs
}

type CreateursConnection implements Connection {
  pageInfo: PageInfo!
  totalCount: Float!
  edges: [CreateursConnectionEdges]
}

type Jeux implements Node & Document {
  title: String!
  seo_title: String!
  summary: String
  description: String
  slug: String
  feature_image: String
  date: String
  tags: [String]
  body: JSON
  id: ID!
  _sys: SystemInfo!
  _values: JSON!
}

input JeuxFilter {
  title: StringFilter
  seo_title: StringFilter
  summary: StringFilter
  description: StringFilter
  slug: StringFilter
  feature_image: StringFilter
  date: DatetimeFilter
  tags: StringFilter
  body: RichTextFilter
}

type JeuxConnectionEdges {
  cursor: String!
  node: Jeux
}

type JeuxConnection implements Connection {
  pageInfo: PageInfo!
  totalCount: Float!
  edges: [JeuxConnectionEdges]
}

type Mutation {
  addPendingDocument(collection: String!, relativePath: String!, template: String): DocumentNode!
  updateDocument(collection: String, relativePath: String!, params: DocumentUpdateMutation!): DocumentNode!
  deleteDocument(collection: String, relativePath: String!): DocumentNode!
  createDocument(collection: String, relativePath: String!, params: DocumentMutation!): DocumentNode!
  updateAbout(relativePath: String!, params: AboutMutation!): About!
  createAbout(relativePath: String!, params: AboutMutation!): About!
  updatePost(relativePath: String!, params: PostMutation!): Post!
  createPost(relativePath: String!, params: PostMutation!): Post!
  updateProjets(relativePath: String!, params: ProjetsMutation!): Projets!
  createProjets(relativePath: String!, params: ProjetsMutation!): Projets!
  updateContact(relativePath: String!, params: ContactMutation!): Contact!
  createContact(relativePath: String!, params: ContactMutation!): Contact!
  updateJdb(relativePath: String!, params: JdbMutation!): Jdb!
  createJdb(relativePath: String!, params: JdbMutation!): Jdb!
  updateCreateurs(relativePath: String!, params: CreateursMutation!): Createurs!
  createCreateurs(relativePath: String!, params: CreateursMutation!): Createurs!
  updateJeux(relativePath: String!, params: JeuxMutation!): Jeux!
  createJeux(relativePath: String!, params: JeuxMutation!): Jeux!
}

input DocumentUpdateMutation {
  about: AboutMutation
  post: PostMutation
  projets: ProjetsMutation
  contact: ContactMutation
  jdb: JdbMutation
  createurs: CreateursMutation
  jeux: JeuxMutation
  relativePath: String
}

input DocumentMutation {
  about: AboutMutation
  post: PostMutation
  projets: ProjetsMutation
  contact: ContactMutation
  jdb: JdbMutation
  createurs: CreateursMutation
  jeux: JeuxMutation
}

input AboutMutation {
  title: String
  seo_title: String
  slug: String
  description: String
  body: JSON
}

input PostMutation {
  title: String
  seo_title: String
  summary: String
  toc: Boolean
  description: String
  slug: String
  image: String
  date: String
  author: [String]
  tags: [String]
  categories: [String]
  body: JSON
}

input ProjetsMutation {
  title: String
  seo_title: String
  summary: String
  description: String
  slug: String
  toc: Boolean
  feature_image: String
  image: String
  date: String
  author: [String]
  project_types: [String]
  tech_stack: [String]
  body: JSON
}

input ContactMutation {
  title: String
  seo_title: String
  description: String
}

input JdbMutation {
  title: String
  seo_title: String
  description: String
  body: JSON
}

input CreateursMutation {
  title: String
  seo_title: String
  summary: String
  slug: String
  feature_image: String
  body: JSON
}

input JeuxMutation {
  title: String
  seo_title: String
  summary: String
  description: String
  slug: String
  feature_image: String
  date: String
  tags: [String]
  body: JSON
}

schema {
  query: Query
  mutation: Mutation
}
