import { gql } from "graphql-tag"; export const userTypeDefs = gql` """Represents a single token entry with a prefix and value""" type CollectionTokenItem { prefix: String! token: String! } """Represents the collection of tokens assigned to a user""" type CollectionToken { tokens: [CollectionTokenItem!]! default: String! } type Person { _id: ID! firstName: String! surname: String! middleName: String! } """User model with references and metadata""" type User { _id: ID uuid: String! expiresAt: String resetToken: String password: String! history: [String!] tag: String! email: String! phone: String! collectionTokens: CollectionToken! person: Person! type: ID createdAt: String updatedAt: String } """Input type for a single token entry""" input CollectionTokenItemInput { prefix: String! token: String! } """Input type for a user's token collection""" input CollectionTokenInput { tokens: [CollectionTokenItemInput!]! default: String! } """Input for creating a new user""" input CreateUserInput { password: String! history: [String!] tag: String! email: String! phone: String! collectionTokens: CollectionTokenInput! person: ID! type: ID } """Queries""" type Query { users: [User!]! user(id: ID!): User } """Mutations""" type Mutation { createUser(input: CreateUserInput!): User! } `;