Error 404 Not Found

GET http://gdpr.jonathan.beazubi.de/robots.txt

Forwarded to ErrorController (3c9ddd)

GraphQL requests

1 HTTP queries on GraphQL endpoint(s)

Refresh with latest query
200 September 8, 2025 08:51 schema: auth 68e285
# Time Info
1 383 ms
query IntrospectionQuery(...) {
__schema(...)
}

Schema: auth

schema {
  query: Query
  mutation: Mutation
}

"The beAzubi GraphQL Query Interface"
type Query {
  admin: Admin
  system: System
  search: Search
  validation: Validation
  invitation(
    "code of the invitation"
    code: String!

    "Deprecated Field"
    districtId: String
  ): Invitation

  "Authorization required"
  occupationalExploration(
    "id of the occupationalExploration"
    id: String!
  ): OccupationalExploration

  "Authorization required"
  occupationalExplorationDay(
    "id of the occupationalExplorationDay"
    id: String!
  ): OccupationalExplorationDay

  "Authorization required"
  company(
    "id of the company"
    id: String!
  ): Company

  "Authorization required"
  question(
    "id of the question"
    id: String!
  ): Question

  "Authorization required"
  story(
    "id of the story"
    id: String!
  ): Story

  school(
    "id of the school"
    id: String!
  ): School

  "Authorization required"
  schoolClass(
    "id of the schoolClass"
    id: String!
  ): SchoolClass

  "Authorization required"
  viewer: Viewer

  "Authorization required"
  managedResource: ManagedResource

  user(
    "id of the user"
    id: String!
  ): User
  event(
    "id of the event"
    id: String!
  ): Event
  eventRating(
    "id of the eventRating"
    id: String!
  ): EventRating
  eventFair(
    "id of the eventFair"
    id: String!
  ): EventFair
  eventFairDay(
    "id of the eventFairDay"
    id: String!
  ): EventFairDay
  eventFairExhibitor(
    "id of the eventFairExhibitor"
    id: String!
  ): EventFairExhibitor
  googlePlace(
    "placeId"
    id: String!
  ): GooglePlace
  district(url: String, slug: String, id: String): District
  country(code: String, id: String): Country
  city(id: String): City
  countryAdministration(url: String, slug: String, id: String): CountryAdministration
  parenthood(id: String!): Parenthood
  achievement(id: String!): Achievement
  apiKey(id: String!): ApiKey
  internship(id: String!): Internship
  request(id: String!): Request
  booking(id: String!): Booking
}

type Admin {
  hasPermission: Boolean!
  users(after: String, first: Int, query: String = "", accountTypes: [AccountTypeEnum!] = []): UserConnection
  districts(after: String, first: Int, query: String = ""): DistrictConnection
  associations(after: String, first: Int, query: String = ""): AssociationConnection
  schools(after: String, first: Int, query: String = ""): SchoolConnection
  companies(after: String, first: Int, query: String = ""): CompanyConnection
}

enum AccountTypeEnum {
  SYSTEM_MANAGER
  COMPANY_MANAGER
  DISTRICT_MANAGER
  SCHOOL_MANAGER
  STUDENT
  USER
}

"A connection to a list of items."
type UserConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [UserEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"Information about pagination in a connection."
type PageInfo {
  "When paginating forwards, are there more items?"
  hasNextPage: Boolean!

  "When paginating backwards, are there more items?"
  hasPreviousPage: Boolean!

  "When paginating backwards, the cursor to continue."
  startCursor: String

  "When paginating forwards, the cursor to continue."
  endCursor: String
}

"An edge in a connection."
type UserEdge {
  "The item at the end of the edge."
  node: User!

  "A cursor for use in pagination."
  cursor: String!
}

type User implements EntityInterface & SearchResultInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  score: Float!
  shortId: String!
  name: String!
  viewerPrivacyPermission: UserPrivacyPermissionStatus!
  email: String
  initials: String!
  avatar: Image!
  gender: GenderEnum
  age: Int
  accountType: String!
  hometown: String
  district: District
  company: Company
  school: School
  schoolClass: SchoolClass
  schoolGraduation: SchoolGraduation
  favoriteSchoolSubjects: [SchoolSubject!]
  professionalTrainings: [ProfessionalTraining!]
  hasProfessionalTrainings: Boolean!
  professionalTrainingInterests: [ProfessionalTraining!]
  professionalTrainingInternships: [ProfessionalTraining!]
  hasProfessionalTrainingInternships: Boolean!
  occupationalFieldInterests: [OccupationalField!]
  occupationalGroupInterests: [OccupationalGroup!]
  questionSection(id: String!): QuestionSection
  questionSections(after: String, first: Int): QuestionSectionConnection
  isViewerFollowing: Boolean!
  languages: [UserLanguage!]
  isCompanyOwner: Boolean!
  isDistrictOwner: Boolean!
  isSchoolOwner: Boolean!
  isCompanyManager: Boolean!
  isDistrictManager: Boolean!
  isSchoolManager: Boolean!
  isAdmin: Boolean!
  profileCompletenessInPercent(section: UserProfileCompletenessEnum): Int!
  distanceToViewer: Float!
  traits(after: String, first: Int): UserTraitConnection
  viewerHasViewedProfileAt: DateTime
  eventParticipantForOccupationalExplorationDay(occupationalExplorationDayId: String!): EventParticipant
  parenthoods(after: String, first: Int, isActive: Boolean = null): ParenthoodConnection
  isParenthoodRequired: Boolean!
  hasActiveParenthood: Boolean!
  isVisibleForCompanies: Boolean!
  isAllowedToParticipateInOccupationalExplorationEvents: Boolean!
  isAllowedToParticipateInInternships: Boolean!
  isAvailableForTraining: Boolean!
  isAvailableForInternship: Boolean!
  achievements(after: String, first: Int): AchievementConnection
  internshipBookings(after: String, first: Int, before: String, last: Int): BookingConnection
  internshipRequests(after: String, first: Int, before: String, last: Int): RequestConnection
}

interface EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
}

scalar DateTime

interface SearchResultInterface {
  score: Float!
}

type UserPrivacyPermissionStatus {
  avatar: Boolean!
  name: Boolean!
  gender: Boolean!
  birthday: Boolean!
  schoolGraduation: Boolean!
}

type Image implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  url(width: Int = 500, height: Int = 500, quality: Int = 87): String!
  context: String!
  isDefaultImage: Boolean!
  unsplashImageId: String
  credits: String
}

enum GenderEnum {
  male
  female
  xyz
}

type District implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  productName: String!
  address: Address!
  slogan: String
  slug: String!
  isAllowedToCreateOccupationalExploration: Boolean!
  isViewerDistrictManager: Boolean!
  avatar: Image!
  cover: Image!
  description: String
  companyCount(period: PeriodEnum): Int!
  companyInDistrictCount: Int!
  activeStudentsCount(period: PeriodEnum): Int!
  activeUsersCount(period: PeriodEnum): Int!
  schoolCount: Int!
  schoolManagerCount: Int!
  schoolClassCount: Int!
  managers: [DistrictManager!]
  managerInvitations: [Invitation!]
  website: String
  phoneNumber: String
  contactEmail: String
  theme(variant: ThemeVariantEnum!): Theme!
  hasBoardingCompleted: Boolean!
  companies(after: String, first: Int, status: DistrictCompanyStatusEnum = default, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC, distance: Int, companyIndustryIds: [String!] = [], companySizeIds: [String!] = [], companyPropertyIds: [String!] = [], companyTypeIds: [String!] = []): CompanyConnection
  schools(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolConnection
  users(after: String, first: Int, query: String = null, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): UserConnection
  occupationalExplorations(after: String, first: Int): OccupationalExplorationConnection
  schoolClassInternships(after: String, first: Int): SchoolClassInternshipConnection
  schoolClassInternshipsForSchoolYear(after: String, first: Int, schoolYearId: String): SchoolClassInternshipConnection
}

type Address implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String
  street: String
  streetNumber: String
  additional: String
  postalCode: String
  city: String
  state: String
  country: Country!
  latitude: String
  longitude: String
  addressLine1: String!
  addressLine2: String
}

type Country implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  code: String!
  countryAdministrations: [CountryAdministration!]
}

type CountryAdministration implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  productName: String!
  slogan: String
  slug: String!
  token: String!
  theme: Theme!
  districts: [District!]
  districtCount: Int!
}

type Theme {
  id: String!
  name: String!
  isDefault: Boolean!
  colors: [Color!]
  graphics: [ThemeGraphic!]
}

type Color {
  key: String!
  value: String!
}

type ThemeGraphic {
  fileName: String!
  publicUrl: String!
  mimeType: String!
  fileSize: Int!
}

enum PeriodEnum {
  this_week
  last_week
  this_month
  last_month
  all_time
}

type DistrictManager implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  user: User!
  isOwner: Boolean!
  isViewer: Boolean!
}

type Invitation implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  district: District!
  isExpired: Boolean!
  code: String!
  url: String!
  accountType: String!
  invitationTarget: InvitationTarget!
  isRestrictedToEmailDomain: Boolean!
  isRestrictedToEmailAddress: Boolean!
  email: String
  emailDomain: String
  pdfPublicUrl: String
  qrCodeUrl(size: Int = 320): String!
  qrCode(size: Int = 320): QrCode!
}

type InvitationTarget implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  type: String!
  name: String!
  parentName: String!
}

type QrCode {
  base64Image: String!
}

enum ThemeVariantEnum {
  light
  dark
}

enum DistrictCompanyStatusEnum {
  default
  pending
  accepted
  denied
}

enum DistrictSortFieldEnum {
  name
  distance
  createdAt
}

enum SortDirectionEnum {
  ASC
  DESC
}

"A connection to a list of items."
type CompanyConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyEdge {
  "The item at the end of the edge."
  node: Company!

  "A cursor for use in pagination."
  cursor: String!
}

type Company implements EntityInterface & VerifiableInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  isVerified: Boolean!
  verifiedAt: DateTime
  isVerificationProcessStarted: Boolean!
  verificationRetryCount: Int!
  verificationRetryCountLimit: Int!
  name: String!
  isCompanyPlus: Boolean!
  address: Address!
  avatar: Image!
  cover: Image!
  website: String
  phoneNumber: String
  contactEmail: String
  description: String
  slogan: String
  foundingYear: Int
  type: CompanyType
  size: CompanySize
  industry: CompanyIndustry
  properties: [CompanyProperty!]
  images(after: String, first: Int): CompanyImageConnection
  hasBoardingCompleted: Boolean!
  isViewerFollowing: Boolean!
  profileCompletenessInPercent: Int!
  distanceToViewer: Float!
  isViewerCompanyManager: Boolean!
  isViewerCompanyOwner: Boolean!
  managers: [CompanyManager!] @deprecated(reason: "Moved to ManagedResource")
  managerInvitations: [Invitation!] @deprecated(reason: "Moved to ManagedResource")
  viewerPrivacyPermissionStatus: UserPrivacyPermissionStatus!
  socialMediaLinkedInUrl: String
  socialMediaFacebookUrl: String
  socialMediaXingUrl: String
  socialMediaYoutubeUrl: String
  socialMediaInstagramUrl: String
  socialMediaTwitterUrl: String
  activities(after: String, first: Int): ActivityConnection
  availableOccupationalExplorationsForSchoolYear(after: String, first: Int, schoolYearId: String): OccupationalExplorationConnection
  isMemberOfKlischeefrei: Boolean!
  city: City
  upcomingEventFairExhibitions(after: String, first: Int): EventFairConnection
  historicEventFairExhibitions(after: String, first: Int): EventFairConnection
  trainings(after: String, first: Int): CompanyTrainingConnection
  isInternshipRequestAllowed: Boolean!
  internshipStatus: CompanyInternshipStatus
}

interface VerifiableInterface {
  isVerified: Boolean!
  verifiedAt: DateTime
  isVerificationProcessStarted: Boolean!
  verificationRetryCount: Int!
  verificationRetryCountLimit: Int!
}

type CompanyType implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
}

type CompanySize implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
  size: Int!
  membership: Membership!
}

type Membership implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  type: MembershipTypeEnum!
  token: String!
  subscriptionPrice: SubscriptionPrice!
}

enum MembershipTypeEnum {
  district
  company
  school
  user
}

type SubscriptionPrice {
  priceAnnualTotal: Money!
  priceAnnualPerMonth: Money!
  priceMonthly: Money!
  taxRate: TaxRate!
}

type Money {
  currency: String!
  currencySymbol: String!
  formattedValueWithCurrencySign: String!
  formattedValue: String!
}

type TaxRate {
  name: String!
  percentage: Float!
  country: Country!
}

type CompanyIndustry implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  companyCount: Int!
}

type CompanyProperty implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  companyBenefit(companyId: String!): CompanyBenefit
}

type CompanyBenefit implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  company: Company!
  companyProperty: CompanyProperty!
  story: Story!
}

type Story implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  isReadyToPublish: Boolean!
  owner: Actor!
  status: StoryStatusEnum!
  context: StoryContextEnum!
  image: Image!
  title: String
  text: String
  primaryItem: StoryItem
  item(id: String!): StoryItem
  items(after: String, first: Int): StoryItemConnection
}

type Actor implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  avatar: Image!
  accountType: String!
}

enum StoryStatusEnum {
  DRAFT
  ACTIVE
  DELETED
}

enum StoryContextEnum {
  ACTIVITY
  JOB_DESCRIPTION
  COMPANY_BENEFIT
  SCHOOL_FACILITY
}

type StoryItem implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  story: Story!
  type: StoryItemTypeEnum!
  position: Int!
  image: Image
  text: String
}

enum StoryItemTypeEnum {
  IMAGE
  IMAGE_TEXT
  VIDEO
  LINK
  TEXT
}

"A connection to a list of items."
type StoryItemConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [StoryItemEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type StoryItemEdge {
  "The item at the end of the edge."
  node: StoryItem!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanyImageConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyImageEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyImageEdge {
  "The item at the end of the edge."
  node: CompanyImage!

  "A cursor for use in pagination."
  cursor: String!
}

type CompanyImage implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  image: Image!
  position: Int!
  description: String
}

type CompanyManager implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  user: User!
  isOwner: Boolean!
  isViewer: Boolean!
}

"A connection to a list of items."
type ActivityConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ActivityEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ActivityEdge {
  "The item at the end of the edge."
  node: Activity!

  "A cursor for use in pagination."
  cursor: String!
}

type Activity implements EntityInterface & ActivityInterface {
  id: ID!
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  actor: Actor!
  activityId: String!
  content: FeedItemContent!
}

interface ActivityInterface {
  id: ID!
  createdAt: DateTime!
  actor: Actor!
  activityId: String!
  deepLink: String
  content: FeedItemContent!
}

type FeedItemContent implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  image: Image!
  title: String
  text: String
}

"A connection to a list of items."
type OccupationalExplorationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalExplorationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalExplorationEdge {
  "The item at the end of the edge."
  node: OccupationalExploration!

  "A cursor for use in pagination."
  cursor: String!
}

type OccupationalExploration implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  district: District!
  cover: Image!
  description: String
  numberOfEventsParticipatedByStudent: Int!
  studentCount: Int!
  participationMustBeDifferentInOccupationalGroups: Boolean!
  schoolYear: SchoolYear!
  days: [OccupationalExplorationDay!]
  dayCount: Int!
  day(dayId: String!): OccupationalExplorationDay
  maxNumberOfParticipants: Int!
  participantCount: Int!
  participatingCompaniesCount: Int!
  participatingCompanies: [Company!]
  qualifiedSchoolClasses: [SchoolClass!]
  qualifiedSchoolClassesCount: Int!
  occupationalGroups: [OccupationalGroup!]
  eventCount: Int!
  isVisibleForStudentsAt: DateTime!
  isVisibleForCompaniesAt: DateTime!
  eventsByCompany(after: String, first: Int, companyId: String!): EventConnection
  eventStatistic: EventStatistic
}

type SchoolYear implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  startAt: DateTime!
  endAt: DateTime!
  isActive: Boolean!
}

type OccupationalExplorationDay implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  occupationalExploration: OccupationalExploration!
  date: DateTime!
  maxNumberOfParticipants: Int!
  participantCount(schoolClassId: String): Int!
  participatingCompaniesCount: Int!
  participatingCompanies: [Company!]
  countAvailablePlaces: Int!
  occupationalGroups: [OccupationalGroup!]
  isDeletable: Boolean!
  schools: [School!]
  qualifiedSchoolClasses: [SchoolClass!]
  qualifiedSchoolClassesCount: Int!
  events: [Event!]
  eventCount: Int!
  eventsAvailableForViewer(after: String, first: Int): EventConnection
  eventParticipantForViewer: EventParticipant
}

type OccupationalGroup implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
  occupationalExplorationEventCount: Int!
  occupationalExplorationMaxNumberOfParticipantsCount: Int!
  occupationalExplorationParticipantCount: Int!
}

type School implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  avatar: Image!
  district: District!
  type: SchoolType!
  hasBoardingCompleted: Boolean!
  schoolClasses(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = DESC): SchoolClassConnection
  address: Address!
  cover: Image
  website: String
  phoneNumber: String
  contactEmail: String
  description: String
  slogan: String
  foundingYear: Int
  studentCount: Int!
  schoolManagerCount: Int!
  schoolClassCount: Int!
  isViewerSchoolManager: Boolean!
  isViewerSchoolOwner: Boolean!
  managers: [SchoolManager!]
  managerInvitations: [Invitation!]
  facilities: [SchoolFacility!]
  yearGroups: [SchoolClassYearGroup!]
  occupationalExplorationDaysForSchoolYear(after: String, first: Int, schoolYearId: String): OccupationalExplorationDayConnection
  schoolClassInternships(after: String, first: Int): SchoolClassInternshipConnection
  schoolClassInternshipsForSchoolYear(after: String, first: Int, schoolYearId: String): SchoolClassInternshipConnection
}

type SchoolType implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

"A connection to a list of items."
type SchoolClassConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolClassEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolClassEdge {
  "The item at the end of the edge."
  node: SchoolClass!

  "A cursor for use in pagination."
  cursor: String!
}

type SchoolClass implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  type: SchoolClassTypeEnum!
  school: School!
  avatar: Image!
  studentCount(filter: SchoolClassStudentFilterEnum! = ALL): Int!
  activeSchoolYear: SchoolYear!
  yearGroup: SchoolClassYearGroup!
  occupationalExplorationDaysForActiveSchoolYear: [OccupationalExplorationDay!]
  occupationalExplorationDayForActiveSchoolYear(id: String!): OccupationalExplorationDay
  primaryManager: User
  managers(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = DESC): UserConnection
  primaryInvitation: Invitation!
  studentInvitations: [Invitation!]
  isQualifiedForOccupationalExploration: Boolean!
  students(after: String, first: Int, filter: SchoolClassStudentFilterEnum = COMPLETE, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = DESC): UserConnection
  occupationalExplorationAchievementCollections(after: String, first: Int): OccupationalExplorationSchoolClassAchievementCollectionConnection
  isDeletable: Boolean!
  isGraduatingClass: Boolean!
  internships(after: String, first: Int): SchoolClassInternshipConnection
  internshipsForSchoolYear(after: String, first: Int, schoolYearId: String): SchoolClassInternshipConnection
}

enum SchoolClassTypeEnum {
  SECONDARY_SEK1
  SECONDARY_SEK2
}

enum SchoolClassStudentFilterEnum {
  COMPLETE
  INCOMPLETE
  ALL
}

type SchoolClassYearGroup implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  groupNumber: Int!
  isQualifiedForOccupationalExploration: Boolean!
  schoolClasses(schoolId: String!): [SchoolClass!]
  isGraduatingSchoolYear: Boolean!
}

"A connection to a list of items."
type OccupationalExplorationSchoolClassAchievementCollectionConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalExplorationSchoolClassAchievementCollectionEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalExplorationSchoolClassAchievementCollectionEdge {
  "The item at the end of the edge."
  node: OccupationalExplorationSchoolClassAchievementCollection!

  "A cursor for use in pagination."
  cursor: String!
}

type OccupationalExplorationSchoolClassAchievementCollection implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  fileCount: Int!
  zipFile: File!
  isViewerAllowedToDownloadZipFile: Boolean!
}

type File implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  mimeType: String!
  isViewerAllowedToDownloadFile: Boolean!
}

"A connection to a list of items."
type SchoolClassInternshipConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolClassInternshipEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolClassInternshipEdge {
  "The item at the end of the edge."
  node: Internship!

  "A cursor for use in pagination."
  cursor: String!
}

type Internship {
  id: String!
  schoolClass: SchoolClass!
  schoolYear: SchoolYear!
  startAt: DateTime!
  rrule: String!
  endAt: DateTime!
  interval: Interval!
  isOver: Boolean!
  visibleForStudentsAt: DateTime!
  isVisibleForStudents: Boolean!
  isActive: Boolean!
  isDeletable: Boolean!
  description: String
  internshipSuggestions(searchQuery: String, professionalCategoryIds: [String!], distance: DistanceEnum = DISTANCE_50): InternshipSuggestions
  activeViewerInternshipRequest: Request
  requests(after: String, first: Int): RequestConnection
}

type Interval {
  startDate: DateTime!
  endDate: DateTime!
  dates: [DateTime!]
  rrule: String!
  weekdays: [String!]
}

enum DistanceEnum {
  DISTANCE_10
  DISTANCE_25
  DISTANCE_50
  DISTANCE_100
  DISTANCE_250
  DISTANCE_500
}

type InternshipSuggestions {
  id: ID
  companies(after: String, first: Int): CompanyConnection
  companyTrainings(after: String, first: Int): CompanyTrainingConnection
}

"A connection to a list of items."
type CompanyTrainingConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyTrainingEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyTrainingEdge {
  "The item at the end of the edge."
  node: CompanyTraining!

  "A cursor for use in pagination."
  cursor: String!
}

type CompanyTraining implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  company: Company!
  professionalTraining: ProfessionalTraining!
  isInternshipRequestAllowed: Boolean!
  isDeletable: Boolean!
}

type ProfessionalTraining implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
  type: ProfessionalTrainingType!
  category: ProfessionalTrainingCategory!
  categories: [ProfessionalTrainingCategory!]
  isForPeopleWithDisabilities: Boolean!
}

type ProfessionalTrainingType implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
}

type ProfessionalTrainingCategory implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
  isParent: Boolean!
  isChild: Boolean!
  parent: ProfessionalTrainingCategory
  children(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): ProfessionalTrainingCategoryConnection
  professionalTrainings(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): ProfessionalTrainingConnection
}

"A connection to a list of items."
type ProfessionalTrainingCategoryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ProfessionalTrainingCategoryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ProfessionalTrainingCategoryEdge {
  "The item at the end of the edge."
  node: ProfessionalTrainingCategory!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type ProfessionalTrainingConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ProfessionalTrainingEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ProfessionalTrainingEdge {
  "The item at the end of the edge."
  node: ProfessionalTraining!

  "A cursor for use in pagination."
  cursor: String!
}

type Request {
  id: String!
  student: User!
  company: Company!
  createdAt: DateTime!
  updatedAt: DateTime!
  internship: Internship
  startAt: DateTime!
  endAt: DateTime!
  expiresAt: DateTime!
  rrule: String!
  status: String!
  statusUpdatedAt: DateTime
  requestMessage: String
  responseMessage: String
  expiresAtInSeconds: Int
  interval: Interval
  schoolClass: SchoolClass
  companyTraining: CompanyTraining!
}

"A connection to a list of items."
type RequestConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [RequestEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type RequestEdge {
  "The item at the end of the edge."
  node: Request!

  "A cursor for use in pagination."
  cursor: String!
}

type SchoolManager implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  user: User!
  isOwner: Boolean!
  isViewer: Boolean!
}

type SchoolFacility implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
  story(schoolId: String!): Story
}

"A connection to a list of items."
type OccupationalExplorationDayConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalExplorationDayEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalExplorationDayEdge {
  "The item at the end of the edge."
  node: OccupationalExplorationDay!

  "A cursor for use in pagination."
  cursor: String!
}

type Event implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  host: Actor!
  eventSeries: EventSeries!
  name: String!
  title: String!
  cover: Image!
  occupationalGroup: OccupationalGroup
  isOccupationalExplorationEvent: Boolean!
  isViewerEventHost: Boolean!
  occupationalExploration: OccupationalExploration
  address: Address!
  startAt: DateTime!
  endAt: DateTime!
  isOver: Boolean!
  isPublic: Boolean!
  participants(after: String, first: Int): EventParticipantConnection
  participantQuestions: [EventParticipantQuestion!]
  canViewerApplyToEvent: Boolean!
  isViewerEventParticipant: Boolean!
  viewerEventParticipant: EventParticipant
  participantCount: Int!
  maxNumberOfParticipants: Int
  isSoldOut: Boolean!
  primaryDescription: String
  secondaryDescription: String
  processDescription: String
  contactPerson: String
  contactPhoneNumber: String
  contactEmail: String
  isSuitableForPeopleWithMentalDisabilities: Boolean!
  isSuitableForPeopleWithWalkingDisabilities: Boolean!
  isSuitableForPeopleWithSpeechDisabilities: Boolean!
  isSuitableForPeopleWithLowVision: Boolean!
  isSuitableForPeopleWithHearingWeakness: Boolean!
  distanceToViewer: Float!
  archiveReason: String
  participationConfirmationToken: String
  openConfirmationParticipants(after: String, first: Int): EventParticipantConnection
  confirmationCodePdfFile: File
  eventStatistic: EventStatistic
}

type EventSeries implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  cover: Image!
  description: String
  owner: Actor!
  events: [Event!]
  eventStatistic: EventStatistic
}

type EventStatistic {
  eventCount: Int!
  participantTotalCount: Int!
  completedEventRatingCount: Int!
  questionWereYourQuestionsAnsweredAverageRating: Float!
  questionCouldYouImagineUndergoingTrainingAtTheCompanyRating: Float!
  questionHowDidYouLikeTheAppointmentRating: Float!
  questionWouldYouLikeToStayInContactWithTheCompanyPercent: Float!
}

"A connection to a list of items."
type EventParticipantConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [EventParticipantEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type EventParticipantEdge {
  "The item at the end of the edge."
  node: EventParticipant!

  "A cursor for use in pagination."
  cursor: String!
}

type EventParticipant implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  event: Event!
  user: User!
  processDescription: String
  questionAnswers: [EventParticipantQuestionAnswer!]
  status: EventParticipantStatusEnum!
  contactPerson: String
}

type EventParticipantQuestionAnswer implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  question: String!
  answer: String
}

enum EventParticipantStatusEnum {
  CONFIRMATION_PENDING
  PARTICIPATED
  NOT_PARTICIPATED
}

type EventParticipantQuestion implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  question: String!
  position: Int!
}

"A connection to a list of items."
type EventConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [EventEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type EventEdge {
  "The item at the end of the edge."
  node: Event!

  "A cursor for use in pagination."
  cursor: String!
}

type City implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  country: Country!
  postalCode: String!
  longitude: Float!
  latitude: Float!
}

"A connection to a list of items."
type EventFairConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [EventFairEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type EventFairEdge {
  "The item at the end of the edge."
  node: EventFair!

  "A cursor for use in pagination."
  cursor: String!
}

type EventFair implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  title: String!
  cover: Image!
  address: Address!
  description: String
  days: [EventFairDay!]
  exhibitors(after: String, first: Int, onlyWithEvents: Boolean = false): EventFairExhibitorConnection!
  viewerExhibitor: EventFairExhibitor
  isVisibleForUsersAt: DateTime!
  isViewerOwner: Boolean!
  isViewerExhibitor: Boolean!
  maxParticipantsCount: Int!
  participantCount: Int!
  availablePlacesCount: Int!
  distanceToViewer: Float!
  viewerParticipatingEvents(after: String, first: Int): EventConnection!
  isViewerParticipant: Boolean!
  eventStatistic: EventStatistic
}

type EventFairDay implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  eventFair: EventFair!
  name: String!
  startAt: DateTime!
  endAt: DateTime!
  isDeletable: Boolean!
  events(
    after: String
    first: Int

    "id of the eventFairExhibitor"
    exhibitorId: String!
  ): EventConnection!
  maxParticipantsCount: Int!
  maxParticipantsByExhibitorCount(
    "id of the eventFairExhibitor"
    exhibitorId: String!
  ): Int!
  participantCount: Int!
  participantByExhibitorCount(
    "id of the eventFairExhibitor"
    exhibitorId: String!
  ): Int!
  availablePlacesCount: Int!
  availablePlacesByExhibitorCount(
    "id of the eventFairExhibitor"
    exhibitorId: String!
  ): Int!
  viewerParticipatingEvents(after: String, first: Int): EventConnection!
  isViewerParticipant: Boolean!
  eventStatistic: EventStatistic
}

"A connection to a list of items."
type EventFairExhibitorConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [EventFairExhibitorEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type EventFairExhibitorEdge {
  "The item at the end of the edge."
  node: EventFairExhibitor!

  "A cursor for use in pagination."
  cursor: String!
}

type EventFairExhibitor implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  eventFair: EventFair!
  company: Company!
  boothInformation: String
  name: String!
  avatar: Image!
  startAt: DateTime!
  endAt: DateTime!
  events(
    after: String
    first: Int

    "id of the eventFairDay"
    dayId: String!
  ): EventConnection!
  maxParticipantsCount: Int!
  maxParticipantsByDayCount(
    "id of the eventFairDay"
    dayId: String!
  ): Int!
  participantCount: Int!
  participantByDayCount(
    "id of the eventFairDay"
    dayId: String!
  ): Int!
  availablePlacesCount: Int!
  availablePlacesByDayCount(
    "id of the eventFairDay"
    dayId: String!
  ): Int!
  eventStatistic: EventStatistic
  isDeletable: Boolean!
}

type CompanyInternshipStatus {
  company: Company!
  pendingInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = CREATED, orderDirection: RequestOrderDirectionEnum = ASC): InternshipRequestConnection
  rejectedInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = DECLINED, orderDirection: RequestOrderDirectionEnum = DESC): InternshipRequestConnection
  acceptedInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = ACCEPTED, orderDirection: RequestOrderDirectionEnum = ASC): InternshipRequestConnection
  canceledInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = DECLINED, orderDirection: RequestOrderDirectionEnum = ASC): InternshipRequestConnection
  declinedInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = CREATED, orderDirection: RequestOrderDirectionEnum = DESC): InternshipRequestConnection
}

enum RequestOrderByEnum {
  CREATED
  ACCEPTED
  DECLINED
  EXPIRED
}

enum RequestOrderDirectionEnum {
  ASC
  DESC
}

"A connection to a list of items."
type InternshipRequestConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [InternshipRequestEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type InternshipRequestEdge {
  "The item at the end of the edge."
  node: Request!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolEdge {
  "The item at the end of the edge."
  node: School!

  "A cursor for use in pagination."
  cursor: String!
}

type SchoolGraduation implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

type SchoolSubject implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

type OccupationalField implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
}

type QuestionSection implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  categories(after: String, first: Int): QuestionCategoryConnection
  category(id: String!): QuestionCategory
  unansweredQuestionCount: Int!
  answeredQuestionCount(userId: String): Int!
}

"A connection to a list of items."
type QuestionCategoryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [QuestionCategoryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type QuestionCategoryEdge {
  "The item at the end of the edge."
  node: QuestionCategory!

  "A cursor for use in pagination."
  cursor: String!
}

type QuestionCategory implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  unansweredQuestionCount: Int!
  section: QuestionSection!
  answeredQuestionCount(userId: String): Int!
  nextQuestion: Question
  answeredMainQuestion(userId: String): Question
  answeredMainQuestions(after: String, first: Int, userId: String): QuestionConnection
  answeredChildQuestions(after: String, first: Int, userId: String): QuestionConnection
  tags(after: String, first: Int): QuestionTagConnection
}

type Question implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  questionText: String!
  isMainQuestion: Boolean!
  answerValue: Int
}

"A connection to a list of items."
type QuestionConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [QuestionEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type QuestionEdge {
  "The item at the end of the edge."
  node: Question!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type QuestionTagConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [QuestionTagEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type QuestionTagEdge {
  "The item at the end of the edge."
  node: QuestionTag!

  "A cursor for use in pagination."
  cursor: String!
}

type QuestionTag {
  name: String!
  token: String!
}

"A connection to a list of items."
type QuestionSectionConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [QuestionSectionEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type QuestionSectionEdge {
  "The item at the end of the edge."
  node: QuestionSection!

  "A cursor for use in pagination."
  cursor: String!
}

type UserLanguage implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
  percent: Int!
  language: Language!
}

type Language implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

enum UserProfileCompletenessEnum {
  boarding
  questions
  training_completed
  training_school
  training_interests
  training_language
}

"A connection to a list of items."
type UserTraitConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [UserTraitEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type UserTraitEdge {
  "The item at the end of the edge."
  node: UserTrait!

  "A cursor for use in pagination."
  cursor: String!
}

type UserTrait implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  user: User!
  points: Float!
  avgFactor: Float!
}

"A connection to a list of items."
type ParenthoodConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ParenthoodEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ParenthoodEdge {
  "The item at the end of the edge."
  node: Parenthood!

  "A cursor for use in pagination."
  cursor: String!
}

type Parenthood implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  parentUser: User!
  childUser: User!
  isActive: Boolean!
  isVisibleForCompanies: Boolean!
  isChildAllowedToParticipateInOccupationalExplorationEvents: Boolean!
  isChildAllowedToParticipateInInternships: Boolean!
  gdprExports(after: String, first: Int): GDPRExportConnection
}

"A connection to a list of items."
type GDPRExportConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [GDPRExportEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type GDPRExportEdge {
  "The item at the end of the edge."
  node: GDPRExport!

  "A cursor for use in pagination."
  cursor: String!
}

type GDPRExport implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  status: GDPRStatusEnum!
  parenthood: Parenthood
  downloadedAt: DateTime!
}

enum GDPRStatusEnum {
  pending
  processing
  completed
  downloaded
  failed
}

"A connection to a list of items."
type AchievementConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [AchievementEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type AchievementEdge {
  "The item at the end of the edge."
  node: Achievement!

  "A cursor for use in pagination."
  cursor: String!
}

type Achievement implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  type: AchievementTypeEnum!
  avatar: Image!
  text(locale: LocaleEnum = de): String!
  isViewerAchievementOwner: Boolean!
  isVisibleOnProfile: Boolean!
  pdfFile: File!
}

enum AchievementTypeEnum {
  OCCUPATIONAL_EXPLORATION_EVENT_PARTICIPATION
  EVENT_PARTICIPATION
}

enum LocaleEnum {
  de
  en
}

"A connection to a list of items."
type BookingConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [BookingEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type BookingEdge {
  "The item at the end of the edge."
  node: Booking!

  "A cursor for use in pagination."
  cursor: String!
}

type Booking {
  id: String
  student: User
  company: Company
  startAt: DateTime!
  endAt: DateTime!
  rrule: String
  contactPerson: String
  contactPhoneNumber: String
  startTime: String
  endTime: String
}

"A connection to a list of items."
type DistrictConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [DistrictEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type DistrictEdge {
  "The item at the end of the edge."
  node: District!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type AssociationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [AssociationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type AssociationEdge {
  "The item at the end of the edge."
  node: Association!

  "A cursor for use in pagination."
  cursor: String!
}

type Association implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  address: Address!
  avatar: Image!
  cover: Image!
}

type System implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  mode: SystemModeEnum!
  productName: String!
  slogan: String
  slug: String!
  avatar: Image!
  email: String!
  serverVersion: String!
  isTestRun: Boolean!
  locales: [LocaleEnum!]
  googlePlacesKey: String!
  stripePublicKey: String!
  theme(variant: ThemeVariantEnum!): Theme!
  themeRepositoryHasUncommittedChanges: Boolean!
  themes(variant: ThemeVariantEnum!): [Theme!]
  schoolYears: [SchoolYear!]
  activeSchoolYear: SchoolYear!
  districts(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): DistrictConnection
  countries(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CountryConnection
  cities(after: String, first: Int, query: String, sortBy: CitySortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CityConnection
  companies(after: String, first: Int, status: DistrictCompanyStatusEnum = default, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC, distance: Int, companyIndustryIds: [String!] = [], companySizeIds: [String!] = [], companyPropertyIds: [String!] = [], companyTypeIds: [String!] = [], districtIds: [String!] = [], cityIds: [String!] = []): CompanyConnection
  companyCount(period: PeriodEnum): Int!
  companyIndustries(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CompanyIndustryConnection
  companyTypes(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CompanyTypeConnection
  companySizes(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CompanySizeConnection
  companyProperties(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CompanyPropertyConnection
  questionSections(after: String, first: Int): QuestionSectionConnection
  professionalTrainingCategories(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): ProfessionalTrainingCategoryConnection
  schoolGraduations(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolGraduationConnection
  schoolSubjects(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolSubjectConnection
  occupationalGroups(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): OccupationalGroupConnection
  occupationalFields(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): OccupationalFieldConnection
  languages(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): LanguageConnection
  blogs(after: String, first: Int): SystemBlogConnection
  schoolTypes(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolTypeConnection
  schoolProperties(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolPropertyConnection
  schoolFacilities(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolFacilityConnection
  schoolClassYearGroups(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolClassYearGroupConnection
  feedbackReasons(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): FeedbackReasonConnection
}

enum SystemModeEnum {
  active
  business_name
}

"A connection to a list of items."
type CountryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CountryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CountryEdge {
  "The item at the end of the edge."
  node: Country!

  "A cursor for use in pagination."
  cursor: String!
}

enum CitySortFieldEnum {
  name
  createdAt
}

"A connection to a list of items."
type CityConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CityEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CityEdge {
  "The item at the end of the edge."
  node: City!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanyIndustryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyIndustryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyIndustryEdge {
  "The item at the end of the edge."
  node: CompanyIndustry!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanyTypeConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyTypeEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyTypeEdge {
  "The item at the end of the edge."
  node: CompanyType!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanySizeConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanySizeEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanySizeEdge {
  "The item at the end of the edge."
  node: CompanySize!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanyPropertyConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyPropertyEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyPropertyEdge {
  "The item at the end of the edge."
  node: CompanyProperty!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolGraduationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolGraduationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolGraduationEdge {
  "The item at the end of the edge."
  node: SchoolGraduation!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolSubjectConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolSubjectEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolSubjectEdge {
  "The item at the end of the edge."
  node: SchoolSubject!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type OccupationalGroupConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalGroupEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalGroupEdge {
  "The item at the end of the edge."
  node: OccupationalGroup!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type OccupationalFieldConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalFieldEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalFieldEdge {
  "The item at the end of the edge."
  node: OccupationalField!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type LanguageConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [LanguageEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type LanguageEdge {
  "The item at the end of the edge."
  node: Language!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SystemBlogConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SystemBlogEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SystemBlogEdge {
  "The item at the end of the edge."
  node: SystemBlog!

  "A cursor for use in pagination."
  cursor: String!
}

type SystemBlog implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  title: String!
  description: String!
  url: String!
  imageUrl: String!
  tags: [String!]
  primaryTag: String!
}

"A connection to a list of items."
type SchoolTypeConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolTypeEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolTypeEdge {
  "The item at the end of the edge."
  node: SchoolType!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolPropertyConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolPropertyEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolPropertyEdge {
  "The item at the end of the edge."
  node: SchoolProperty!

  "A cursor for use in pagination."
  cursor: String!
}

type SchoolProperty implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

"A connection to a list of items."
type SchoolFacilityConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolFacilityEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolFacilityEdge {
  "The item at the end of the edge."
  node: SchoolFacility!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolClassYearGroupConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolClassYearGroupEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolClassYearGroupEdge {
  "The item at the end of the edge."
  node: SchoolClassYearGroup!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type FeedbackReasonConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [FeedbackReasonEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type FeedbackReasonEdge {
  "The item at the end of the edge."
  node: FeedbackReason!

  "A cursor for use in pagination."
  cursor: String!
}

type FeedbackReason implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

type Search {
  userSearch(after: String, first: Int, before: String, last: Int, districtId: String, schoolId: String, distance: Int, isAvailableForInternship: Boolean = true, isAvailableForTraining: Boolean = true, tags: [String!]): UserConnection
  unsplashImageSearch(query: String!, page: Int = 1, limit: Int = 24): UnsplashImageSearchResult!
  autocompleteCompanies(after: String, first: Int, query: String!, districtId: String): AutocompleteResultItemConnection
}

type UnsplashImageSearchResult {
  total: Int!
  totalPages: Int!
  images: [UnsplashImage!]
}

type UnsplashImage {
  id: String!
  url(type: UnsplashImageTypeEnum!): String!
  credits: String!
}

enum UnsplashImageTypeEnum {
  RAW
  FULL
  REGULAR
  SMALL
  THUMB
  SMALL_S3
}

"A connection to a list of items."
type AutocompleteResultItemConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [AutocompleteResultItemEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type AutocompleteResultItemEdge {
  "The item at the end of the edge."
  node: AutocompleteResultItem!

  "A cursor for use in pagination."
  cursor: String!
}

type AutocompleteResultItem {
  id: String!
  title: String!
  subTitle: String!
  entityId: String!
  entityType: String!
  entityToken: String!
  districtId: String
  avatarSmallUrl: String!
  avatarMiddleUrl: String!
  avatarLargeUrl: String!
}

type Validation {
  isUsernameAlreadyInUse(username: String!): Boolean!
  isEmailAlreadyInUse(email: String!): Boolean!
}

"This is you"
type Viewer implements EntityInterface & SearchResultInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  score: Float!
  shortId: String!
  name: String!
  viewerPrivacyPermission: UserPrivacyPermissionStatus!
  email: String!
  initials: String!
  avatar: Image!
  gender: GenderEnum
  age: Int
  accountType: String!
  hometown: String
  district: District
  company: Company
  school: School
  schoolClass: SchoolClass
  schoolGraduation: SchoolGraduation
  favoriteSchoolSubjects: [SchoolSubject!]
  professionalTrainings: [ProfessionalTraining!]
  hasProfessionalTrainings: Boolean!
  professionalTrainingInterests: [ProfessionalTraining!]
  professionalTrainingInternships: [ProfessionalTraining!]
  hasProfessionalTrainingInternships: Boolean!
  occupationalFieldInterests: [OccupationalField!]
  occupationalGroupInterests: [OccupationalGroup!]
  questionSection(id: String!): QuestionSection
  questionSections(after: String, first: Int): QuestionSectionConnection
  isViewerFollowing: Boolean!
  languages: [UserLanguage!]
  isCompanyOwner: Boolean!
  isDistrictOwner: Boolean!
  isSchoolOwner: Boolean!
  isCompanyManager: Boolean!
  isDistrictManager: Boolean!
  isSchoolManager: Boolean!
  isAdmin: Boolean!
  profileCompletenessInPercent(section: UserProfileCompletenessEnum): Int!
  distanceToViewer: Float!
  traits(after: String, first: Int): UserTraitConnection
  viewerHasViewedProfileAt: DateTime
  eventParticipantForOccupationalExplorationDay(occupationalExplorationDayId: String!): EventParticipant
  parenthoods(after: String, first: Int, isActive: Boolean = null): ParenthoodConnection
  isParenthoodRequired: Boolean!
  hasActiveParenthood: Boolean!
  isVisibleForCompanies: Boolean!
  isAllowedToParticipateInOccupationalExplorationEvents: Boolean!
  isAllowedToParticipateInInternships: Boolean!
  isAvailableForTraining: Boolean!
  isAvailableForInternship: Boolean!
  achievements(after: String, first: Int): AchievementConnection
  internshipBookings(after: String, first: Int, before: String, last: Int): BookingConnection
  internshipRequests(after: String, first: Int, before: String, last: Int): RequestConnection
  firstName: String!
  lastName: String!
  username: String!
  birthday: DateTime
  isEmailNotificationEnabled: Boolean!
  isMobileNotificationEnabled: Boolean!
  isEmailAddressConfirmed: Boolean!
  hasBoardingCompleted: Boolean!
  notifications(after: String, first: Int): NotificationConnection
  feed(after: String, first: Int): FeedItemConnection
  chatConversations(after: String, first: Int): ChatConversationConnection @deprecated(reason: "Moved to ManagedResource")
  chatConversation(id: String!): ChatConversation @deprecated(reason: "Moved to ManagedResource")
  unreadCount: UnreadCount!
  notification(id: String!): Notification
  nextMainQuestion: Question
  answeredQuestionCount: Int!
  storyDrafts(after: String, first: Int, context: StoryContextEnum!): StoryConnection
  feedbackKey: String!
  feedbackUrl: String!
  userFollowings(after: String, first: Int): UserConnection
  companiesWithProfileReadPermission(after: String, first: Int): CompanyConnection
  showOccupationalExplorationModule: Boolean!
  profileCompletenessFirstTimeAt: DateTime
  paymentMethod: PaymentMethod @deprecated(reason: "Moved to ManagedResource")
  membership: Membership! @deprecated(reason: "Moved to ManagedResource")
  hasSubscription: Boolean! @deprecated(reason: "Moved to ManagedResource")
  hasActiveSubscription: Boolean! @deprecated(reason: "Moved to ManagedResource")
  canChangeMembershipManual: Boolean! @deprecated(reason: "Moved to ManagedResource")
  canCancelMembershipManual: Boolean! @deprecated(reason: "Moved to ManagedResource")
  subscription: Subscription @deprecated(reason: "Moved to ManagedResource")
  subscriptionPaymentInterval: PaymentIntervalEnum! @deprecated(reason: "Moved to ManagedResource")
  availableMemberships: [Membership!] @deprecated(reason: "Moved to ManagedResource")
  isAllowedToChangeMembership: Boolean! @deprecated(reason: "Moved to ManagedResource")
  isAllowedToPayByInvoice: Boolean! @deprecated(reason: "Moved to ManagedResource")
  isAllowedToPayBySepa: Boolean! @deprecated(reason: "Moved to ManagedResource")
  billingAddress: Address @deprecated(reason: "Moved to ManagedResource")
  billingEmail: String! @deprecated(reason: "Moved to ManagedResource")
  invoices(after: String, first: Int): InvoiceConnection @deprecated(reason: "Moved to ManagedResource")
  gdprExports(after: String, first: Int): GDPRExportConnection @deprecated(reason: "Moved to ManagedResource")
  visitedUsers(after: String, first: Int): UserConnection
  visitorUsers(after: String, first: Int): UserConnection
  likedUsers(after: String, first: Int): UserConnection
  managedSchoolClasses(after: String, first: Int): SchoolClassConnection
  isVisibleForCompaniesStatus: UserVisibleForCompaniesStatusEnum!
  isAllowedToParticipateInTrainings: Boolean!
  hostedEventsWithOpenConfirmations(after: String, first: Int): EventConnection
  apiKeys(after: String, first: Int): ApiKeyConnection @deprecated(reason: "Moved to ManagedResource")
  upcomingHostedEventFairs(after: String, first: Int): EventFairConnection
  historicHostedEventFairs(after: String, first: Int): EventFairConnection
  upcomingEventFairExhibitions(after: String, first: Int): EventFairConnection
  historicEventFairExhibitions(after: String, first: Int): EventFairConnection
  upcomingEventFairs(after: String, first: Int, orderBy: UpcomingEventFairsOrderByEnum! = distance): EventFairConnection
  upcomingParticipatingEventFairs(after: String, first: Int, orderBy: UpcomingEventFairsOrderByEnum! = startAt): EventFairConnection
  upcomingSchoolClassInternships(after: String, first: Int): SchoolClassInternshipConnection
  internshipSuggestions(searchQuery: String, professionalCategoryIds: [String!], distance: DistanceEnum = DISTANCE_50): InternshipSuggestions
}

"A connection to a list of items."
type NotificationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [NotificationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type NotificationEdge {
  "The item at the end of the edge."
  node: Notification!

  "A cursor for use in pagination."
  cursor: String!
}

type Notification implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  actor: Actor!
  activityId: String!
  isUnread: Boolean!
  isRead: Boolean!
  activityText: ActivityText!
  callToAction: CallToAction
}

type ActivityText {
  text(locale: LocaleEnum = null): String!
  template(locale: LocaleEnum = null): String!
  placeholders: [ActivityTextPlaceholder!]
}

type ActivityTextPlaceholder {
  keyWithDivider: String!
  key: String!
  value: String!
  entityType: String!
  entityId: String!
  deepLink: String
}

type CallToAction {
  deepLink: String!
  primaryActionType: String!
  primaryActionText: String!
  isPrimaryActionVisible: Boolean!
  isPrimaryActionDisabled: Boolean!
}

"A connection to a list of items."
type FeedItemConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [FeedItemEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type FeedItemEdge {
  "The item at the end of the edge."
  node: FeedItem!

  "A cursor for use in pagination."
  cursor: String!
}

type FeedItem implements EntityInterface & ActivityInterface {
  id: ID!
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  actor: Actor!
  activityId: String!
  content: FeedItemContent!
}

"A connection to a list of items."
type ChatConversationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ChatConversationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ChatConversationEdge {
  "The item at the end of the edge."
  node: ChatConversation!

  "A cursor for use in pagination."
  cursor: String!
}

type ChatConversation implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  membersKey: String!
  members: [ChatConversationMember!]
  lastMessage: ChatMessage
  lastMessageAt: DateTime
  unreadCount: Int!
  isArchived: Boolean!
  message(id: String!): ChatMessage
  messages(after: String, first: Int): ChatMessageConnection
}

type ChatConversationMember {
  id: ID
  entityType: String!
  isViewer: Boolean!
  deepLink: String!
  name: String!
  avatar: Image
}

type ChatMessage implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  type: String!
  message: String
  actor: ChatConversationMember!
  conversation: ChatConversation!
  position: Int
}

"A connection to a list of items."
type ChatMessageConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ChatMessageEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ChatMessageEdge {
  "The item at the end of the edge."
  node: ChatMessage!

  "A cursor for use in pagination."
  cursor: String!
}

type UnreadCount {
  notifications: Int!
  chat: Int!
  questions: Int!
  mainQuestions: Int!
}

"A connection to a list of items."
type StoryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [StoryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type StoryEdge {
  "The item at the end of the edge."
  node: Story!

  "A cursor for use in pagination."
  cursor: String!
}

type PaymentMethod {
  id: String!
  type: String!
  brand: String!
  last4: String!
  expiresMonth: Int
  expiresYear: Int
}

type Subscription {
  id: String!
  customer: Customer!
  status: SubscriptionStatusEnum!
  cancelAt: DateTime
  cancelAtPeriodEnd: Boolean!
  canceledAt: DateTime
  createdAt: DateTime!
  currentPeriodStartAt: DateTime!
  currentPeriodEndAt: DateTime!
  daysUntilDue: Int
  latestInvoice: Invoice!
}

type Customer {
  name: String!
  entityToken: String!
  address: Address!
  billingEmail: String!
  isAllowedToPayByInvoice: Boolean!
  primaryPaymentMethod: PaymentMethod
}

enum SubscriptionStatusEnum {
  active
  past_due
  unpaid
  canceled
  incomplete
  incomplete_expired
  trialing
}

type Invoice {
  number: String!
  status: String!
  hostedInvoiceUrl: String!
  total: Money!
  createdAt: DateTime
}

enum PaymentIntervalEnum {
  monthly
  annual
}

"A connection to a list of items."
type InvoiceConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [InvoiceEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type InvoiceEdge {
  "The item at the end of the edge."
  node: Invoice!

  "A cursor for use in pagination."
  cursor: String!
}

enum UserVisibleForCompaniesStatusEnum {
  OK
  OK_FOR_INTERNSHIP
  OK_FOR_TRAINING
  PROFILE_IS_DELETED
  PROFILE_IS_INCOMPLETE
  PARENT_INVITATION_REQUIRED
  DENIED_BY_PARENTHOOD
  DENIED_BY_USER_SETTINGS
  UNKNOWN
}

"A connection to a list of items."
type ApiKeyConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ApiKeyEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ApiKeyEdge {
  "The item at the end of the edge."
  node: ApiKey!

  "A cursor for use in pagination."
  cursor: String!
}

type ApiKey implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  email: String
  isIpWhitelistActive: Boolean!
  whitelistIps: [ApiKeyWhitelistIp!]
  requestLogs(after: String, first: Int): ApiKeyRequestLogConnection
}

type ApiKeyWhitelistIp implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  ip: String!
}

"A connection to a list of items."
type ApiKeyRequestLogConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ApiKeyRequestLogEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ApiKeyRequestLogEdge {
  "The item at the end of the edge."
  node: ApiKeyRequestLog!

  "A cursor for use in pagination."
  cursor: String!
}

type ApiKeyRequestLog implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  method: String!
  uri: String!
  query: String
  responseStatusCode: Int!
  responseTime: Int!
}

enum UpcomingEventFairsOrderByEnum {
  distance
  startAt
}

"This is your managed resource"
type ManagedResource implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  managerInvitations(after: String, first: Int): InvitationConnection
  managers(after: String, first: Int): ResourceManagerConnection
  isViewerOwner: Boolean!
  isViewerManager: Boolean!
  paymentMethod: PaymentMethod
}

"A connection to a list of items."
type InvitationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [InvitationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type InvitationEdge {
  "The item at the end of the edge."
  node: Invitation!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type ResourceManagerConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ResourceManagerEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ResourceManagerEdge {
  "The item at the end of the edge."
  node: ResourceManager!

  "A cursor for use in pagination."
  cursor: String!
}

type ResourceManager implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  user: User!
  isOwner: Boolean!
  isViewer: Boolean!
}

type EventRating implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  event: Event!
  questionAnswers: [EventRatingQuestionAnswer!]
  isCompleted: Boolean!
}

type EventRatingQuestionAnswer implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  eventRating: EventRating!
  position: Int!
  questionType: EventRatingQuestionAnswerTypeEnum!
  questionText: String!
  isAnswered: Boolean!
  answerValue: Int
}

enum EventRatingQuestionAnswerTypeEnum {
  BOOLEAN
  RATING
}

type GooglePlace implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  street: String!
  streetNumber: String
  postalCode: String!
  city: String!
  district: String!
  state: String!
  country: String!
  isInDistrict(districtId: String!): Boolean!
}

type Mutation {
  achievementIsVisibleOnProfileMutation(input: AchievementIsVisibleOnProfileInput!): AchievementIsVisibleOnProfilePayload
  addressCreateMutation(input: AddressCreateInput!): AddressCreatePayload
  adminImpersonateUserMutation(input: AdminImpersonateUserInput!): AdminImpersonateUserPayload
  apiKeyArchiveMutation(input: ApiKeyArchiveInput!): ApiKeyArchivePayload
  associationCreateMutation(input: AssociationCreateMutationInput!): AssociationCreateMutationPayload
  associationManagerInvitationMutation(input: AssociationManagerInvitationMutationInput!): AssociationManagerInvitationMutationPayload
  companyActivityArchiveMutation(input: CompanyActivityArchiveInput!): CompanyActivityArchivePayload
  createRequestMutation(input: CreateRequestMutationInput!): CreateRequestMutationPayload
  deleteRequestMutation(input: DeleteRequestMutationInput!): DeleteRequestMutationPayload
  cancelRequestMutation(input: CancelRequestInput!): CancelRequestPayload
  rejectRequestMutation(input: RejectRequestInput!): RejectRequestPayload
  acceptRequestMutation(input: AcceptRequestInput!): AcceptRequestPayload
  apiKeyCreateMutation(input: ApiKeyCreateInput!): ApiKeyCreatePayload
  likeMutation(input: LikeMutationInput!): LikeMutationPayload
  associationManagerRemoveMutation(input: AssociationManagerRemoveMutationInput!): AssociationManagerRemoveMutationPayload
  unlikeMutation(input: UnlikeMutationInput!): UnlikeMutationPayload
  viewerArchiveChatConversationMutation(input: ViewerArchiveChatConversationInput!): ViewerArchiveChatConversationPayload
  viewerCreateChatTextMessageMutation(input: ViewerCreateChatTextMessageInput!): ViewerCreateChatTextMessagePayload
  viewerCreateSingleChatConversationMutation(input: ViewerCreateSingleChatConversationInput!): ViewerCreateSingleChatConversationPayload
  viewerMarkChatConversationAsReadMutation(input: ViewerMarkChatConversationAsReadMutationInput!): ViewerMarkChatConversationAsReadMutationPayload
  viewerRestoreChatConversationMutation(input: ViewerRestoreChatConversationInput!): ViewerRestoreChatConversationPayload
  companyAddressMutation(input: CompanyAddressInput!): CompanyAddressPayload
  companyApprenticeInviteMutation(input: CompanyApprenticeInviteInput!): CompanyApprenticeInvitePayload
  companyArchiveMutation(input: CompanyArchiveInput!): CompanyArchivePayload
  companyBenefitMutation(input: CompanyBenefitInput!): CompanyBenefitPayload
  companyChangeAvatarMutation(input: CompanyChangeAvatarInput!): CompanyChangeAvatarPayload
  companyChangeCoverMutation(input: CompanyChangeCoverInput!): CompanyChangeCoverPayload
  companyContactEmailMutation(input: CompanyContactEmailInput!): CompanyContactEmailPayload
  companyCreateMutation(input: CompanyCreateInput!): CompanyCreatePayload
  companyDescriptionMutation(input: CompanyDescriptionInput!): CompanyDescriptionPayload
  companyFoundingYearMutation(input: CompanyFoundingYearInput!): CompanyFoundingYearPayload
  companyHasBoardingCompletedMutation(input: CompanyHasBoardingCompletedInput!): CompanyHasBoardingCompletedPayload
  companyImageAddMutation(input: CompanyImageAddInput!): CompanyImageAddPayload
  companyImageRemoveMutation(input: CompanyImageRemoveInput!): CompanyImageRemovePayload
  companyImageUpdateMutation(input: CompanyImageUpdateInput!): CompanyImageUpdatePayload
  companyImageUpdateAllMutation(input: CompanyImageUpdateAllInput!): CompanyImageUpdateAllPayload
  companyIndustryMutation(input: CompanyIndustryInput!): CompanyIndustryPayload
  companyInternshipRequestAllowedMutation(input: CompanyInternshipRequestAllowedInput!): CompanyInternshipRequestAllowedPayload
  companyKlischeefreiMutation(input: CompanyKlischeefreiInput!): CompanyKlischeefreiPayload
  companyManagerInviteMutation(input: CompanyManagerInviteInput!): CompanyManagerInvitePayload
  companyManagerRemoveMutation(input: CompanyManagerRemoveInput!): CompanyManagerRemovePayload
  companyManagerTransferOwnershipMutation(input: CompanyManagerTransferOwnershipInput!): CompanyManagerTransferOwnershipPayload
  companyNameMutation(input: CompanyNameInput!): CompanyNamePayload
  companyPhoneNumberMutation(input: CompanyPhoneNumberInput!): CompanyPhoneNumberPayload
  companyPropertyAddMutation(input: CompanyPropertyAddInput!): CompanyPropertyAddPayload
  companyPropertyRemoveMutation(input: CompanyPropertyRemoveInput!): CompanyPropertyRemovePayload
  companySizeMutation(input: CompanySizeInput!): CompanySizePayload
  companySloganMutation(input: CompanySloganInput!): CompanySloganPayload
  companySocialMediaMutation(input: CompanySocialMediaInput!): CompanySocialMediaPayload
  companyStartVerificationMutation(input: CompanyStartVerificationMutationInput!): CompanyStartVerificationMutationPayload
  companyTrainingCreateMultipleMutation(input: CompanyTrainingCreateMultipleMutationInput!): CompanyTrainingCreateMultipleMutationPayload
  companyTrainingCreateMutation(input: CompanyTrainingCreateInput!): CompanyTrainingCreatePayload
  companyTrainingRemoveMutation(input: CompanyTrainingRemoveInput!): CompanyTrainingRemovePayload
  companyTypeMutation(input: CompanyTypeInput!): CompanyTypePayload
  companySubmitVerificationCodeMutation(input: CompanySubmitVerificationCodeMutationInput!): CompanySubmitVerificationCodeMutationPayload
  companyWebsiteMutation(input: CompanyWebsiteInput!): CompanyWebsitePayload
  districtAddressMutation(input: DistrictAddressInput!): DistrictAddressPayload
  districtChangeAvatarMutation(input: DistrictChangeAvatarInput!): DistrictChangeAvatarPayload
  districtChangeCoverMutation(input: DistrictChangeCoverInput!): DistrictChangeCoverPayload
  districtContactEmailMutation(input: DistrictContactEmailInput!): DistrictContactEmailPayload
  districtDescriptionMutation(input: DistrictDescriptionInput!): DistrictDescriptionPayload
  districtManagerInviteMutation(input: DistrictManagerInviteInput!): DistrictManagerInvitePayload
  districtManagerRemoveMutation(input: DistrictManagerRemoveInput!): DistrictManagerRemovePayload
  districtManagerTransferOwnershipMutation(input: DistrictManagerTransferOwnershipInput!): DistrictManagerTransferOwnershipPayload
  districtNameMutation(input: DistrictNameInput!): DistrictNamePayload
  districtPhoneNumberMutation(input: DistrictPhoneNumberInput!): DistrictPhoneNumberPayload
  districtWebsiteMutation(input: DistrictWebsiteInput!): DistrictWebsitePayload
  eventAddressMutation(input: EventAddressInput!): EventAddressPayload
  eventArchiveMutation(input: EventArchiveInput!): EventArchivePayload
  eventContactEmailMutation(input: EventContactEmailInput!): EventContactEmailPayload
  eventContactPersonMutation(input: EventContactPersonInput!): EventContactPersonPayload
  eventContactPhoneNumberMutation(input: EventContactPhoneNumberInput!): EventContactPhoneNumberPayload
  eventCoverMutation(input: EventCoverInput!): EventCoverPayload
  eventCustomQuestionsMutation(input: EventCustomQuestionsInput!): EventCustomQuestionsPayload
  eventDescriptionMutation(input: EventDescriptionInput!): EventDescriptionPayload
  eventInclusionMutation(input: EventInclusionInput!): EventInclusionPayload
  eventJoinMutation(input: EventJoinInput!): EventJoinPayload
  eventLeaveMutation(input: EventLeaveInput!): EventLeavePayload
  eventMaxNumberOfParticipantsMutation(input: EventMaxNumberOfParticipantsInput!): EventMaxNumberOfParticipantsPayload
  eventOccupationalGroupMutation(input: EventOccupationalGroupInput!): EventOccupationalGroupPayload
  eventParticipantConfirmMutation(input: EventParticipantConfirmInput!): EventParticipantConfirmPayload
  eventParticipantContactPersonMutation(input: EventParticipantContactPersonInput!): EventParticipantContactPersonPayload
  eventParticipantRemoveMutation(input: EventParticipantRemoveInput!): EventParticipantRemovePayload
  eventProcessDescriptionMutation(input: EventProcessDescriptionInput!): EventProcessDescriptionPayload
  eventTimeMutation(input: EventTimeInput!): EventTimePayload
  eventDescriptionsUpdateMutation(input: EventDescriptionsUpdateInput!): EventDescriptionsUpdatePayload
  eventTitleMutation(input: EventTitleInput!): EventTitlePayload
  eventFairAddressMutation(input: EventFairAddressInput!): EventFairAddressPayload
  eventFairCoverMutation(input: EventFairDetailsUpdateInput!): EventFairDetailsUpdatePayload
  eventDetailsUpdateMutation(input: EventDetailsUpdateInput!): EventDetailsUpdatePayload
  eventRatingQuestionAnswerMutation(input: EventRatingQuestionAnswerMutationInput!): EventRatingQuestionAnswerMutationPayload
  eventFairCreateMutation(input: EventFairCreateInput!): EventFairCreatePayload
  eventFairDayCreateMutation(input: EventFairDayCreateInput!): EventFairDayCreatePayload
  eventFairDayRemoveMutation(input: EventFairDayRemoveInput!): EventFairDayRemovePayload
  eventFairDayScheduleCreateMutation(input: EventFairDayScheduleCreateInput!): EventFairDayScheduleCreatePayload
  eventFairDescriptionMutation(input: EventFairDescriptionInput!): EventFairDescriptionPayload
  eventFairExhibitorBoothInformationMutation(input: EventFairExhibitorBoothInformationInput!): EventFairExhibitorBoothInformationPayload
  eventFairExhibitorCreateMutation(input: EventFairExhibitorCreateInput!): EventFairExhibitorCreatePayload
  contactRequestCreateByDistrictMutation(input: ContactRequestCreateByDistrictInput!): ContactRequestCreateByDistrictPayload
  eventFairExhibitorRemoveMutation(input: EventFairExhibitorRemoveInput!): EventFairExhibitorRemovePayload
  eventFairIsVisibleForUsersAtMutation(input: EventFairIsVisibleForUsersAtInput!): EventFairIsVisibleForUsersAtPayload
  eventFairTitleMutation(input: EventFairTitleInput!): EventFairTitlePayload
  feedbackCreateMutation(input: FeedbackCreateMutationInput!): FeedbackCreateMutationPayload
  reportCreateMutation(input: ReportCreateInput!): ReportCreatePayload
  fileDownloadTicketMutation(input: FileDownloadTicketMutationInput!): FileDownloadTicketMutationPayload
  imageUploadByUnsplashMutation(input: ImageUploadByUnsplashInput!): ImageUploadByUnsplashPayload
  imageUploadMutation(input: ImageUploadInput!): ImageUploadPayload
  occupationalExplorationChangeCoverMutation(input: OccupationalExplorationChangeCoverInput!): OccupationalExplorationChangeCoverPayload
  occupationalExplorationCreateMutation(input: OccupationalExplorationCreateInput!): OccupationalExplorationCreatePayload
  occupationalExplorationDayCreateMutation(input: OccupationalExplorationDayCreateInput!): OccupationalExplorationDayCreatePayload
  occupationalExplorationDayDeleteMutation(input: OccupationalExplorationDayDeleteInput!): OccupationalExplorationDayDeletePayload
  occupationalExplorationDayEventCreateMutation(input: OccupationalExplorationDayEventCreateInput!): OccupationalExplorationDayEventCreatePayload
  occupationalExplorationDayUpdateMutation(input: OccupationalExplorationDayUpdateInput!): OccupationalExplorationDayUpdatePayload
  viewerMarkNotificationsAsRead(input: ViewerMarkNotificationsAsReadInput!): ViewerMarkNotificationsAsReadPayload
  occupationalExplorationDescriptionMutation(input: OccupationalExplorationDescriptionInput!): OccupationalExplorationDescriptionPayload
  occupationalExplorationNumberOfEventsParticipatedByStudentMutation(input: OccupationalExplorationNumberOfEventsParticipatedByStudentInput!): OccupationalExplorationNumberOfEventsParticipatedByStudentPayload
  occupationalExplorationParticipationMustBeDifferentInOccupationalGroupsMutation(input: OccupationalExplorationParticipationMustBeDifferentInOccupationalGroupsInput!): OccupationalExplorationParticipationMustBeDifferentInOccupationalGroupsPayload
  occupationalExplorationVisibleForCompaniesAtMutation(input: OccupationalExplorationVisibleForCompaniesAtInput!): OccupationalExplorationVisibleForCompaniesAtPayload
  occupationalExplorationVisibleForStudentsAtMutation(input: OccupationalExplorationVisibleForStudentsAtInput!): OccupationalExplorationVisibleForStudentsAtPayload
  occupationalTrainingCreateMutation(input: OccupationalTrainingCreateInput!): OccupationalTrainingCreatePayload
  parenthoodCreateMutation(input: ParenthoodCreateMutationInput!): ParenthoodCreateMutationPayload
  parenthoodIsChildAllowedToParticipateInInternshipsMutation(input: ParenthoodIsChildAllowedToParticipateInInternshipsMutationInput!): ParenthoodIsChildAllowedToParticipateInInternshipsMutationPayload
  parenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutation(input: ParenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutationInput!): ParenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutationPayload
  parenthoodIsVisibleForCompaniesMutation(input: ParenthoodIsVisibleForCompaniesMutationInput!): ParenthoodIsVisibleForCompaniesMutationPayload
  parenthoodRemoveMutation(input: ParenthoodRemoveMutationInput!): ParenthoodRemoveMutationPayload
  parenthoodRequestGDPRExportMutation(input: ParenthoodRequestGDPRExportMutationInput!): ParenthoodRequestGDPRExportMutationPayload
  questionAnswerMutation(input: ViewerQuestionAnswerInput!): ViewerQuestionAnswerPayload
  schoolAddressMutation(input: SchoolAddressInput!): SchoolAddressPayload
  schoolChangeAvatarMutation(input: SchoolChangeAvatarInput!): SchoolChangeAvatarPayload
  schoolContactEmailMutation(input: SchoolContactEmailInput!): SchoolContactEmailPayload
  schoolCoverMutation(input: SchoolCoverInput!): SchoolCoverPayload
  schoolCreateMutation(input: SchoolCreateInput!): SchoolCreatePayload
  schoolDescriptionMutation(input: SchoolDescriptionInput!): SchoolDescriptionPayload
  schoolFacilityAddMutation(input: SchoolFacilityAddInput!): SchoolFacilityAddPayload
  schoolFacilityRemoveMutation(input: SchoolFacilityRemoveInput!): SchoolFacilityRemovePayload
  schoolFacilityStoryMutation(input: SchoolFacilityStoryInput!): SchoolFacilityStoryPayload
  schoolFoundingYearMutation(input: SchoolFoundingYearInput!): SchoolFoundingYearPayload
  schoolHasBoardingCompletedMutation(input: SchoolHasBoardingCompletedInput!): SchoolHasBoardingCompletedPayload
  schoolManagerInviteMutation(input: SchoolManagerInviteInput!): SchoolManagerInvitePayload
  schoolManagerRemoveMutation(input: SchoolManagerRemoveInput!): SchoolManagerRemovePayload
  schoolNameMutation(input: SchoolNameInput!): SchoolNamePayload
  schoolPhoneNumberMutation(input: SchoolPhoneNumberInput!): SchoolPhoneNumberPayload
  schoolSloganMutation(input: SchoolSloganInput!): SchoolSloganPayload
  schoolClassCreateMutation(input: SchoolClassCreateInput!): SchoolClassCreatePayload
  schoolWebsiteMutation(input: SchoolWebsiteInput!): SchoolWebsitePayload
  schoolClassIsQualifiedForOccupationalExplorationMutation(input: SchoolClassIsQualifiedForOccupationalExplorationInput!): SchoolClassIsQualifiedForOccupationalExplorationPayload
  contactRequestCreateByViewerMutation(input: ContactRequestCreateByViewerInput!): ContactRequestCreateByViewerPayload
  schoolClassManagerAddMutation(input: SchoolClassManagerAddInput!): SchoolClassManagerAddPayload
  schoolClassManagerRemoveMutation(input: SchoolClassManagerRemoveInput!): SchoolClassManagerRemovePayload
  schoolClassNameMutation(input: SchoolClassNameInput!): SchoolClassNamePayload
  schoolClassUpdateAllMutation(input: SchoolClassUpdateAllInput!): SchoolClassUpdateAllPayload
  schoolClassYearGroupMutation(input: SchoolClassYearGroupInput!): SchoolClassYearGroupPayload
  studentInvitationMutation(input: StudentInvitationInput!): StudentInvitationPayload
  studentJoinSchoolClassMutation(input: StudentJoinSchoolClassInput!): StudentJoinSchoolClassPayload
  storyCreateDraftMutation(input: StoryCreateDraftInput!): StoryCreateDraftPayload
  studentLeaveSchoolClassMutation(input: StudentLeaveSchoolClassInput!): StudentLeaveSchoolClassPayload
  storyCreateFeedItemMutation(input: StoryCreateFeedItemInput!): StoryCreateFeedItemPayload
  storyItemImageMutation(input: StoryItemImageInput!): StoryItemImagePayload
  storyItemTextMutation(input: StoryItemTextInput!): StoryItemTextPayload
  storyTitleUpdateMutation(input: StoryTitleUpdateInput!): StoryTitleUpdatePayload
  systemImportThemeMutation(input: SystemImportThemeInput!): SystemImportThemePayload
  userCreateMutation(input: UserCreateInput!): UserCreatePayload
  userResetPasswordMutation(input: UserResetPasswordInput!): UserResetPasswordPayload
  userResetPasswordSubmitMutation(input: UserResetPasswordSubmitInput!): UserResetPasswordSubmitPayload
  viewerArchiveMutation(input: ViewerArchiveInput!): ViewerArchivePayload
  viewerBillingInformationMutation(input: ViewerBillingInformationInput!): ViewerBillingInformationPayload
  viewerBirthdayMutation(input: ViewerBirthdayInput!): ViewerBirthdayPayload
  viewerCancelSubscriptionMutation(input: ViewerCancelSubscriptionInput!): ViewerCancelSubscriptionPayload
  viewerChangeAvatarMutation(input: ViewerChangeAvatarInput!): ViewerChangeAvatarPayload
  viewerAddOccupationalGroupInterestsMutation(input: ViewerAddOccupationalGroupInterestsInput!): ViewerAddOccupationalGroupInterestsPayload
  viewerChangeEmailMutation(input: ViewerChangeEmailInput!): ViewerChangeEmailPayload
  viewerAddFavoriteSchoolSubjectsMutation(input: ViewerAddFavoriteSchoolSubjectsInput!): ViewerAddFavoriteSchoolSubjectsPayload
  viewerChangeGenderMutation(input: ViewerChangeGenderInput!): ViewerChangeGenderPayload
  viewerChangeNameMutation(input: ViewerChangeNameInput!): ViewerChangeNamePayload
  viewerChangePasswordMutation(input: ViewerChangePasswordInput!): ViewerChangePasswordPayload
  viewerContinueSubscriptionMutation(input: ViewerContinueSubscriptionInput!): ViewerContinueSubscriptionPayload
  viewerExpoPushTokenMutation(input: ViewerExpoPushTokenInput!): ViewerExpoPushTokenPayload
  viewerGDPRExportMutation(input: ViewerGDPRExportInput!): ViewerGDPRExportPayload
  viewerRemoveFavoriteSchoolSubjectsMutation(input: ViewerRemoveFavoriteSchoolSubjectsInput!): ViewerRemoveFavoriteSchoolSubjectsPayload
  deleteInternshipMutation(input: DeleteInternshipMutationInput!): DeleteInternshipMutationPayload
  viewerGrantCompanyProfileReadPermissionsMutation(input: ViewerGrantCompanyProfileReadPermissionsMutationInput!): ViewerGrantCompanyProfileReadPermissionsMutationPayload
  viewerHasBoardingCompletedMutation(input: ViewerHasBoardingCompletedInput!): ViewerHasBoardingCompletedPayload
  viewerAddLanguageMutation(input: ViewerAddLanguageInput!): ViewerAddLanguagePayload
  viewerAddOccupationalFieldInterestsMutation(input: ViewerAddOccupationalFieldInterestsInput!): ViewerAddOccupationalFieldInterestsPayload
  viewerHometownMutation(input: ViewerHometownInput!): ViewerHometownPayload
  viewerIsAvailableForInternshipMutation(input: ViewerIsAvailableForInternshipMutationInput!): ViewerIsAvailableForInternshipMutationPayload
  viewerIsAvailableForTrainingMutation(input: ViewerIsAvailableForTrainingMutationInput!): ViewerIsAvailableForTrainingMutationPayload
  viewerMembershipMutation(input: ViewerMembershipInput!): ViewerMembershipPayload
  viewerNotificationSettingsMutation(input: ViewerNotificationSettingsInput!): ViewerNotificationSettingsPayload
  viewerRemoveLanguageMutation(input: ViewerRemoveLanguageInput!): ViewerRemoveLanguagePayload
  viewerRemoveOccupationalFieldInterestsMutation(input: ViewerRemoveOccupationalFieldInterestsInput!): ViewerRemoveOccupationalFieldInterestsPayload
  viewerRemoveOccupationalGroupInterestsMutation(input: ViewerRemoveOccupationalGroupInterestsInput!): ViewerRemoveOccupationalGroupInterestsPayload
  viewerPaymentMethodMutation(input: ViewerPaymentMethodInput!): ViewerPaymentMethodPayload
  viewerAddProfessionalTrainingsMutation(input: ViewerAddProfessionalTrainingsInput!): ViewerAddProfessionalTrainingsPayload
  viewerRemoveProfessionalTrainingsMutation(input: ViewerRemoveProfessionalTrainingsInput!): ViewerRemoveProfessionalTrainingsPayload
  viewerResendConfirmationEmailMutation(input: ViewerResendConfirmationEmailInput!): ViewerResendConfirmationEmailPayload
  viewerSchoolGraduationMutation(input: ViewerSchoolGraduationInput!): ViewerSchoolGraduationPayload
  viewerVisitMutation(input: ViewerVisitMutationInput!): ViewerVisitMutationPayload
  createInternshipMutation(input: CreateInternshipMutationInput!): CreateInternshipMutationPayload
}

input AchievementIsVisibleOnProfileInput {
  achievementId: String!
  isVisibleOnProfile: Boolean!
  clientMutationId: String
}

type AchievementIsVisibleOnProfilePayload {
  achievement: Achievement!
  clientMutationId: String
}

input AddressCreateInput {
  googlePlaceId: String
  name: String
  street: String!
  streetNumber: String!
  additional: String
  postalCode: String!
  city: String!
  state: String
  districtAdministration: String
  latitude: Float
  longitude: Float
  countryId: String!
  countryDistrictId: String
  clientMutationId: String
}

type AddressCreatePayload {
  address: Address!
  clientMutationId: String
}

input AdminImpersonateUserInput {
  toImpersonateUserId: String!
  clientMutationId: String
}

type AdminImpersonateUserPayload {
  token: String!
  clientMutationId: String
}

input ApiKeyArchiveInput {
  apiKeyId: String!
  clientMutationId: String
}

type ApiKeyArchivePayload {
  result: Boolean!
  clientMutationId: String
}

input AssociationCreateMutationInput {
  googlePlaceId: String!
  associationName: String!
  firstName: String!
  lastName: String!
  email: String!
  password: String!
  clientMutationId: String
}

type AssociationCreateMutationPayload {
  association: Association!
  clientMutationId: String
}

input AssociationManagerInvitationMutationInput {
  email: String!
  clientMutationId: String
}

type AssociationManagerInvitationMutationPayload {
  invitation: Invitation!
  association: Association!
  clientMutationId: String
}

input CompanyActivityArchiveInput {
  companyId: String!
  activityId: String!
  clientMutationId: String
}

type CompanyActivityArchivePayload {
  company: Company!
  activity: Activity!
  clientMutationId: String
}

input CreateRequestMutationInput {
  student: String!
  company: String!
  internship: String!
  rrule: String!
  requestMessage: String
  companyTrainingId: String!
  clientMutationId: String
}

type CreateRequestMutationPayload {
  request: Request!
  clientMutationId: String
}

input DeleteRequestMutationInput {
  id: String!
  clientMutationId: String
}

type DeleteRequestMutationPayload {
  student: User!
  clientMutationId: String
}

input CancelRequestInput {
  id: String!
  message: String
  clientMutationId: String
}

type CancelRequestPayload {
  request: Request!
  company: Company!
  clientMutationId: String
}

input RejectRequestInput {
  id: String!
  message: String
  clientMutationId: String
}

type RejectRequestPayload {
  request: Request!
  company: Company!
  clientMutationId: String
}

input AcceptRequestInput {
  id: String!
  message: String
  contactPerson: String!
  contactPhoneNumber: String!
  startTime: String = "08:00"
  endTime: String = "16:00"
  clientMutationId: String
}

type AcceptRequestPayload {
  booking: Booking!
  company: Company!
  clientMutationId: String
}

input ApiKeyCreateInput {
  name: String!
  email: String
  whitelistIps: [String!]
  clientMutationId: String
}

type ApiKeyCreatePayload {
  apiKey: ApiKey!
  token: String!
  clientMutationId: String
}

input LikeMutationInput {
  objectToken: String!
  clientMutationId: String
}

type LikeMutationPayload {
  result: Boolean!
  viewer: Viewer!
  clientMutationId: String
}

input AssociationManagerRemoveMutationInput {
  userId: String!
  clientMutationId: String
}

type AssociationManagerRemoveMutationPayload {
  association: Association!
  user: User!
  clientMutationId: String
}

input UnlikeMutationInput {
  objectToken: String!
  clientMutationId: String
}

type UnlikeMutationPayload {
  result: Boolean!
  viewer: Viewer!
  clientMutationId: String
}

input ViewerArchiveChatConversationInput {
  chatConversationId: String!
  clientMutationId: String
}

type ViewerArchiveChatConversationPayload {
  chatConversation: ChatConversation!
  clientMutationId: String
}

input ViewerCreateChatTextMessageInput {
  chatConversationId: String!
  message: String!
  clientMutationId: String
}

type ViewerCreateChatTextMessagePayload {
  chatMessage: ChatMessage!
  clientMutationId: String
}

input ViewerCreateSingleChatConversationInput {
  conversationMemberEntityId: String!
  conversationMemberEntityType: String!
  clientMutationId: String
}

type ViewerCreateSingleChatConversationPayload {
  chatConversation: ChatConversation!
  clientMutationId: String
}

input ViewerMarkChatConversationAsReadMutationInput {
  chatConversationId: String!
  clientMutationId: String
}

type ViewerMarkChatConversationAsReadMutationPayload {
  chatConversation: ChatConversation!
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRestoreChatConversationInput {
  chatConversationId: String!
  clientMutationId: String
}

type ViewerRestoreChatConversationPayload {
  chatConversation: ChatConversation!
  clientMutationId: String
}

input CompanyAddressInput {
  addressId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyAddressPayload {
  company: Company!
  clientMutationId: String
}

input CompanyApprenticeInviteInput {
  occupationalTrainingYearId: String!
  email: String!
  clientMutationId: String
}

type CompanyApprenticeInvitePayload {
  invitation: Invitation!
  company: Company!
  clientMutationId: String
}

input CompanyArchiveInput {
  companyOwnerPassword: String!
  companyId: String!
  clientMutationId: String
}

type CompanyArchivePayload {
  company: Company!
  viewer: Viewer!
  clientMutationId: String
}

input CompanyBenefitInput {
  companyPropertyId: String!
  companyId: String!
  storyId: String!
  clientMutationId: String
}

type CompanyBenefitPayload {
  company: Company!
  clientMutationId: String
}

input CompanyChangeAvatarInput {
  imageId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyChangeAvatarPayload {
  company: Company!
  clientMutationId: String
}

input CompanyChangeCoverInput {
  imageId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyChangeCoverPayload {
  company: Company!
  clientMutationId: String
}

input CompanyContactEmailInput {
  contactEmail: String
  companyId: String!
  clientMutationId: String
}

type CompanyContactEmailPayload {
  company: Company!
  clientMutationId: String
}

input CompanyCreateInput {
  districtId: String!
  companyName: String
  googlePlaceId: String!
  firstName: String!
  lastName: String!
  email: String!
  password: String!
  clientMutationId: String
}

type CompanyCreatePayload {
  authToken: String!
  company: Company!
  clientMutationId: String
}

input CompanyDescriptionInput {
  description: String
  companyId: String!
  clientMutationId: String
}

type CompanyDescriptionPayload {
  company: Company!
  clientMutationId: String
}

input CompanyFoundingYearInput {
  foundingYear: Int
  companyId: String!
  clientMutationId: String
}

type CompanyFoundingYearPayload {
  company: Company!
  clientMutationId: String
}

input CompanyHasBoardingCompletedInput {
  hasBoardingCompleted: Boolean!
  companyId: String!
  clientMutationId: String
}

type CompanyHasBoardingCompletedPayload {
  company: Company!
  clientMutationId: String
}

input CompanyImageAddInput {
  imageId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyImageAddPayload {
  company: Company!
  companyImage: CompanyImage!
  clientMutationId: String
}

input CompanyImageRemoveInput {
  companyImageId: String!
  clientMutationId: String
}

type CompanyImageRemovePayload {
  company: Company!
  companyImage: CompanyImage!
  clientMutationId: String
}

input CompanyImageUpdateInput {
  companyImageId: String!
  position: Int
  clientMutationId: String
}

type CompanyImageUpdatePayload {
  company: Company!
  companyImage: CompanyImage!
  clientMutationId: String
}

input CompanyImageUpdateAllInput {
  companyId: String!
  companyImages: [CompanyImageInput!]
  clientMutationId: String
}

input CompanyImageInput {
  id: String!
  position: Int!
}

type CompanyImageUpdateAllPayload {
  company: Company!
  images: CompanyImageConnection
  clientMutationId: String
}

input CompanyIndustryInput {
  companyIndustryId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyIndustryPayload {
  company: Company!
  clientMutationId: String
}

input CompanyInternshipRequestAllowedInput {
  isInternshipRequestAllowed: Boolean!
  companyId: String!
  clientMutationId: String
}

type CompanyInternshipRequestAllowedPayload {
  company: Company!
  clientMutationId: String
}

input CompanyKlischeefreiInput {
  isMemberOfKlischeefrei: Boolean!
  companyId: String!
  clientMutationId: String
}

type CompanyKlischeefreiPayload {
  company: Company!
  clientMutationId: String
}

input CompanyManagerInviteInput {
  email: String!
  clientMutationId: String
}

type CompanyManagerInvitePayload {
  invitation: Invitation!
  company: Company!
  clientMutationId: String
}

input CompanyManagerRemoveInput {
  userId: String!
  clientMutationId: String
}

type CompanyManagerRemovePayload {
  company: Company!
  user: User!
  clientMutationId: String
}

input CompanyManagerTransferOwnershipInput {
  userId: String!
  viewerPassword: String!
  clientMutationId: String
}

type CompanyManagerTransferOwnershipPayload {
  company: Company!
  clientMutationId: String
}

input CompanyNameInput {
  name: String!
  companyId: String!
  clientMutationId: String
}

type CompanyNamePayload {
  company: Company!
  clientMutationId: String
}

input CompanyPhoneNumberInput {
  phoneNumber: String
  companyId: String!
  clientMutationId: String
}

type CompanyPhoneNumberPayload {
  company: Company!
  clientMutationId: String
}

input CompanyPropertyAddInput {
  companyPropertyId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyPropertyAddPayload {
  company: Company!
  clientMutationId: String
}

input CompanyPropertyRemoveInput {
  companyPropertyId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyPropertyRemovePayload {
  company: Company!
  clientMutationId: String
}

input CompanySizeInput {
  companySizeId: String!
  companyId: String!
  clientMutationId: String
}

type CompanySizePayload {
  company: Company!
  clientMutationId: String
}

input CompanySloganInput {
  slogan: String
  companyId: String!
  clientMutationId: String
}

type CompanySloganPayload {
  company: Company!
  clientMutationId: String
}

input CompanySocialMediaInput {
  companyId: String!
  socialMediaLinkedInUrl: String
  socialMediaFacebookUrl: String
  socialMediaXingUrl: String
  socialMediaYoutubeUrl: String
  socialMediaInstagramUrl: String
  socialMediaTwitterUrl: String
  socialMediaTikTokUrl: String
  socialMediaSnapchatUrl: String
  clientMutationId: String
}

type CompanySocialMediaPayload {
  company: Company!
  clientMutationId: String
}

input CompanyStartVerificationMutationInput {
  companyId: String!
  clientMutationId: String
}

type CompanyStartVerificationMutationPayload {
  company: Company!
  clientMutationId: String
}

input CompanyTrainingCreateMultipleMutationInput {
  professionalTrainingIds: [String!]!
  companyId: String!
  clientMutationId: String
}

type CompanyTrainingCreateMultipleMutationPayload {
  company: Company
  clientMutationId: String
}

input CompanyTrainingCreateInput {
  professionalTrainingId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyTrainingCreatePayload {
  companyTraining: CompanyTraining!
  clientMutationId: String
}

input CompanyTrainingRemoveInput {
  companyTrainingId: String!
  clientMutationId: String
}

type CompanyTrainingRemovePayload {
  company: Company!
  clientMutationId: String
}

input CompanyTypeInput {
  companyTypeId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyTypePayload {
  company: Company!
  clientMutationId: String
}

input CompanySubmitVerificationCodeMutationInput {
  companyId: String!
  code: String!
  clientMutationId: String
}

type CompanySubmitVerificationCodeMutationPayload {
  company: Company!
  result: VerificationSubmitResultEnum!
  clientMutationId: String
}

enum VerificationSubmitResultEnum {
  VERIFICATION_RETRY_LIMIT_REACHED
  VERIFICATION_INVALID_CODE
  VERIFICATION_SUCCESS
}

input CompanyWebsiteInput {
  website: String
  companyId: String!
  clientMutationId: String
}

type CompanyWebsitePayload {
  company: Company!
  clientMutationId: String
}

input DistrictAddressInput {
  addressId: String!
  districtId: String!
  clientMutationId: String
}

type DistrictAddressPayload {
  district: District!
  clientMutationId: String
}

input DistrictChangeAvatarInput {
  imageId: String!
  districtId: String!
  clientMutationId: String
}

type DistrictChangeAvatarPayload {
  district: District!
  clientMutationId: String
}

input DistrictChangeCoverInput {
  imageId: String!
  districtId: String!
  clientMutationId: String
}

type DistrictChangeCoverPayload {
  district: District!
  clientMutationId: String
}

input DistrictContactEmailInput {
  contactEmail: String
  districtId: String!
  clientMutationId: String
}

type DistrictContactEmailPayload {
  district: District!
  clientMutationId: String
}

input DistrictDescriptionInput {
  description: String
  districtId: String!
  clientMutationId: String
}

type DistrictDescriptionPayload {
  district: District!
  clientMutationId: String
}

input DistrictManagerInviteInput {
  email: String!
  clientMutationId: String
}

type DistrictManagerInvitePayload {
  invitation: Invitation!
  district: District!
  clientMutationId: String
}

input DistrictManagerRemoveInput {
  userId: String!
  clientMutationId: String
}

type DistrictManagerRemovePayload {
  district: District!
  user: User!
  clientMutationId: String
}

input DistrictManagerTransferOwnershipInput {
  userId: String!
  viewerPassword: String!
  clientMutationId: String
}

type DistrictManagerTransferOwnershipPayload {
  district: District!
  clientMutationId: String
}

input DistrictNameInput {
  name: String!
  districtId: String!
  clientMutationId: String
}

type DistrictNamePayload {
  district: District!
  clientMutationId: String
}

input DistrictPhoneNumberInput {
  phoneNumber: String
  districtId: String!
  clientMutationId: String
}

type DistrictPhoneNumberPayload {
  district: District!
  clientMutationId: String
}

input DistrictWebsiteInput {
  website: String
  districtId: String!
  clientMutationId: String
}

type DistrictWebsitePayload {
  district: District!
  clientMutationId: String
}

input EventAddressInput {
  eventId: String!
  addressId: String!
  clientMutationId: String
}

type EventAddressPayload {
  event: Event!
  clientMutationId: String
}

input EventArchiveInput {
  eventId: String!
  archiveReason: String!
  clientMutationId: String
}

type EventArchivePayload {
  event: Event!
  clientMutationId: String
}

input EventContactEmailInput {
  eventId: String!
  contactEmail: String!
  clientMutationId: String
}

type EventContactEmailPayload {
  event: Event!
  clientMutationId: String
}

input EventContactPersonInput {
  eventId: String!
  contactPerson: String!
  clientMutationId: String
}

type EventContactPersonPayload {
  event: Event!
  clientMutationId: String
}

input EventContactPhoneNumberInput {
  eventId: String!
  contactPhoneNumber: String!
  clientMutationId: String
}

type EventContactPhoneNumberPayload {
  event: Event!
  clientMutationId: String
}

input EventCoverInput {
  eventId: String!
  imageId: String!
  clientMutationId: String
}

type EventCoverPayload {
  event: Event!
  clientMutationId: String
}

input EventCustomQuestionsInput {
  eventId: String!
  customQuestions: [String!]
  clientMutationId: String
}

type EventCustomQuestionsPayload {
  event: Event!
  clientMutationId: String
}

input EventDescriptionInput {
  eventId: String!
  secondaryDescription: String!
  clientMutationId: String
}

type EventDescriptionPayload {
  event: Event!
  clientMutationId: String
}

input EventInclusionInput {
  eventId: String!
  isSuitableForPeopleWithMentalDisabilities: Boolean!
  isSuitableForPeopleWithWalkingDisabilities: Boolean!
  isSuitableForPeopleWithSpeechDisabilities: Boolean!
  isSuitableForPeopleWithLowVision: Boolean!
  isSuitableForPeopleWithHearingWeakness: Boolean!
  clientMutationId: String
}

type EventInclusionPayload {
  event: Event!
  clientMutationId: String
}

input EventJoinInput {
  eventId: String!
  questionsAnswers: [EventParticipationQuestionAnswerInput!]
  clientMutationId: String
}

input EventParticipationQuestionAnswerInput {
  id: String!
  answer: String!
}

type EventJoinPayload {
  eventParticipant: EventParticipant
  event: Event!
  viewer: Viewer!
  clientMutationId: String
}

input EventLeaveInput {
  eventId: String!
  clientMutationId: String
}

type EventLeavePayload {
  event: Event!
  viewer: Viewer!
  clientMutationId: String
}

input EventMaxNumberOfParticipantsInput {
  eventId: String!
  maxNumberOfParticipants: Int!
  clientMutationId: String
}

type EventMaxNumberOfParticipantsPayload {
  event: Event!
  clientMutationId: String
}

input EventOccupationalGroupInput {
  eventId: String!
  occupationalGroupId: String!
  clientMutationId: String
}

type EventOccupationalGroupPayload {
  event: Event!
  clientMutationId: String
}

input EventParticipantConfirmInput {
  eventParticipantId: String!
  eventParticipationConfirmationToken: String!
  status: EventParticipantStatusEnum!
  clientMutationId: String
}

type EventParticipantConfirmPayload {
  eventParticipant: EventParticipant
  error: EventParticipantConfirmMutationErrorEnum
  clientMutationId: String
}

enum EventParticipantConfirmMutationErrorEnum {
  ACCESS_DENIED
  INVALID_TOKEN
  INVALID_DAY
  ALREADY_CONFIRMED
}

input EventParticipantContactPersonInput {
  eventParticipantId: String!
  contactPerson: String
  clientMutationId: String
}

type EventParticipantContactPersonPayload {
  eventParticipant: EventParticipant
  clientMutationId: String
}

input EventParticipantRemoveInput {
  eventParticipantId: String!
  clientMutationId: String
}

type EventParticipantRemovePayload {
  event: Event!
  clientMutationId: String
}

input EventProcessDescriptionInput {
  eventId: String!
  processDescription: String!
  clientMutationId: String
}

type EventProcessDescriptionPayload {
  event: Event!
  clientMutationId: String
}

input EventTimeInput {
  eventId: String!
  startTime: String!
  endTime: String!
  clientMutationId: String
}

type EventTimePayload {
  event: Event!
  clientMutationId: String
}

input EventDescriptionsUpdateInput {
  eventId: String!
  processDescription: String!
  secondaryDescription: String!
  clientMutationId: String
}

type EventDescriptionsUpdatePayload {
  event: Event!
  clientMutationId: String
}

input EventTitleInput {
  eventId: String!
  title: String!
  clientMutationId: String
}

type EventTitlePayload {
  event: Event!
  clientMutationId: String
}

input EventFairAddressInput {
  eventFairId: String!
  addressId: String!
  clientMutationId: String
}

type EventFairAddressPayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairDetailsUpdateInput {
  eventFairId: String!
  imageId: String!
  title: String!
  visibleForUsersAt: DateTime!
  clientMutationId: String
}

type EventFairDetailsUpdatePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventDetailsUpdateInput {
  eventId: String!
  imageId: String!
  name: String
  occupationalGroupId: String!
  isSuitableForPeopleWithMentalDisabilities: Boolean!
  isSuitableForPeopleWithWalkingDisabilities: Boolean!
  isSuitableForPeopleWithSpeechDisabilities: Boolean!
  isSuitableForPeopleWithLowVision: Boolean!
  isSuitableForPeopleWithHearingWeakness: Boolean!
  contactPerson: String!
  contactPhoneNumber: String!
  startTime: String!
  endTime: String!
  maxNumberOfParticipants: Int!
  clientMutationId: String
}

type EventDetailsUpdatePayload {
  event: Event!
  clientMutationId: String
}

input EventRatingQuestionAnswerMutationInput {
  eventRatingQuestionAnswerId: String!
  answerValue: Int!
  clientMutationId: String
}

type EventRatingQuestionAnswerMutationPayload {
  eventRating: EventRating!
  eventRatingQuestionAnswer: EventRatingQuestionAnswer!
  clientMutationId: String
}

input EventFairCreateInput {
  addressId: String!
  name: String!
  isVisibleForUsersAt: DateTime!
  clientMutationId: String
}

type EventFairCreatePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairDayCreateInput {
  eventFairId: String!
  startAt: DateTime!
  endAt: DateTime!
  clientMutationId: String
}

type EventFairDayCreatePayload {
  eventFairDay: EventFairDay!
  clientMutationId: String
}

input EventFairDayRemoveInput {
  eventFairDayId: String!
  clientMutationId: String
}

type EventFairDayRemovePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairDayScheduleCreateInput {
  eventFairDayId: String!
  eventFairExhibitorId: String!
  intervalMinutes: Int!
  maxNumberOfParticipants: Int!
  customQuestions: [String!]
  clientMutationId: String
}

type EventFairDayScheduleCreatePayload {
  eventFairDay: EventFairDay!
  eventFairExhibitor: EventFairExhibitor!
  clientMutationId: String
}

input EventFairDescriptionInput {
  eventFairId: String!
  description: String
  clientMutationId: String
}

type EventFairDescriptionPayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairExhibitorBoothInformationInput {
  eventFairExhibitorId: String!
  boothInformation: String
  clientMutationId: String
}

type EventFairExhibitorBoothInformationPayload {
  eventFairExhibitor: EventFairExhibitor!
  clientMutationId: String
}

input EventFairExhibitorCreateInput {
  eventFairId: String!
  companyId: String!
  clientMutationId: String
}

type EventFairExhibitorCreatePayload {
  eventFairExhibitor: EventFairExhibitor!
  clientMutationId: String
}

input ContactRequestCreateByDistrictInput {
  districtId: String!
  name: String!
  accountType: String!
  email: String!
  message: String!
  clientMutationId: String
}

type ContactRequestCreateByDistrictPayload {
  result: Boolean!
  id: String!
  clientMutationId: String
}

input EventFairExhibitorRemoveInput {
  eventFairExhibitorId: String!
  clientMutationId: String
}

type EventFairExhibitorRemovePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairIsVisibleForUsersAtInput {
  eventFairId: String!
  isVisibleForUsersAt: DateTime!
  clientMutationId: String
}

type EventFairIsVisibleForUsersAtPayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairTitleInput {
  eventFairId: String!
  title: String!
  clientMutationId: String
}

type EventFairTitlePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input FeedbackCreateMutationInput {
  feedbackReasonId: String!
  name: String = "Anonymer Benutzer"
  email: String!
  message: String!
  districtId: String
  schoolId: String
  clientMutationId: String
}

type FeedbackCreateMutationPayload {
  feedback: Feedback!
  clientMutationId: String
}

type Feedback implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String
  email: String!
  message: String
  reason: FeedbackReason!
  user: User
  district: District
  school: School
}

input ReportCreateInput {
  entityToken: String!
  reason: String!
  message: String
  clientMutationId: String
}

type ReportCreatePayload {
  result: Boolean!
  clientMutationId: String
}

input FileDownloadTicketMutationInput {
  fileId: String!
  clientMutationId: String
}

type FileDownloadTicketMutationPayload {
  fileDownloadTicket: FileDownloadTicket!
  clientMutationId: String
}

type FileDownloadTicket implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  downloadLink: String!
  isExpired: Boolean!
  isViewerAllowedToDownloadFile: Boolean!
}

input ImageUploadByUnsplashInput {
  unsplashImageId: String!
  clientMutationId: String
}

type ImageUploadByUnsplashPayload {
  image: Image!
  clientMutationId: String
}

input ImageUploadInput {
  files: [String]
  clientMutationId: String
}

type ImageUploadPayload {
  image: Image!
  clientMutationId: String
}

input OccupationalExplorationChangeCoverInput {
  imageId: String!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationChangeCoverPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationCreateInput {
  schoolYearId: String!
  numberOfEventsParticipatedByStudent: Int!
  participationMustBeDifferentInOccupationalGroups: Boolean!
  days: [String!]
  companyStartAt: DateTime
  studentStartAt: DateTime
  clientMutationId: String
}

type OccupationalExplorationCreatePayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationDayCreateInput {
  occupationalExplorationId: String!
  day: String!
  schoolIds: [String!]
  clientMutationId: String
}

type OccupationalExplorationDayCreatePayload {
  occupationalExplorationDay: OccupationalExplorationDay!
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationDayDeleteInput {
  occupationalExplorationDayId: String!
  clientMutationId: String
}

type OccupationalExplorationDayDeletePayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationDayEventCreateInput {
  explorationDays: [OccupationalExplorationDayEventCreateDayInput!]
  occupationalGroupId: String!
  addressId: String!
  description: String!
  processDescription: String!
  contactPerson: String!
  contactPhoneNumber: String!
  contactEmail: String!
  isSuitableForPeopleWithMentalDisabilities: Boolean!
  isSuitableForPeopleWithWalkingDisabilities: Boolean!
  isSuitableForPeopleWithSpeechDisabilities: Boolean!
  isSuitableForPeopleWithLowVision: Boolean!
  isSuitableForPeopleWithHearingWeakness: Boolean!
  customQuestions: [String!]
  imageId: String!
  title: String
  clientMutationId: String
}

input OccupationalExplorationDayEventCreateDayInput {
  id: String!
  startTime: String!
  endTime: String!
  participantCount: Int!
}

type OccupationalExplorationDayEventCreatePayload {
  events: [Event!]
  company: Company!
  viewer: Viewer!
  clientMutationId: String
}

input OccupationalExplorationDayUpdateInput {
  oldOccupationalExplorationDayId: String!
  newDay: String!
  schoolIds: [String!]
  clientMutationId: String
}

type OccupationalExplorationDayUpdatePayload {
  occupationalExplorationDay: OccupationalExplorationDay!
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input ViewerMarkNotificationsAsReadInput {
  markAsRead: Boolean
  clientMutationId: String
}

type ViewerMarkNotificationsAsReadPayload {
  viewer: Viewer!
  clientMutationId: String
}

input OccupationalExplorationDescriptionInput {
  description: String!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationDescriptionPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationNumberOfEventsParticipatedByStudentInput {
  numberOfEventsParticipatedByStudent: Int!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationNumberOfEventsParticipatedByStudentPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationParticipationMustBeDifferentInOccupationalGroupsInput {
  participationMustBeDifferentInOccupationalGroups: Boolean!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationParticipationMustBeDifferentInOccupationalGroupsPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationVisibleForCompaniesAtInput {
  isVisibleForCompaniesAt: DateTime!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationVisibleForCompaniesAtPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationVisibleForStudentsAtInput {
  isVisibleForStudentsAt: DateTime!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationVisibleForStudentsAtPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalTrainingCreateInput {
  professionalTrainingId: String!
  name: String!
  yearCount: Int!
  clientMutationId: String
}

type OccupationalTrainingCreatePayload {
  occupationalTraining: OccupationalTraining!
  clientMutationId: String
}

type OccupationalTraining implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  professionalTrainingId: String!
  ownerToken: String!
  ownerId: String!
  ownerType: String!
  years(after: String, first: Int): OccupationalTrainingConnection
  yearsCount: Int!
}

"A connection to a list of items."
type OccupationalTrainingConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalTrainingEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalTrainingEdge {
  "The item at the end of the edge."
  node: OccupationalTraining!

  "A cursor for use in pagination."
  cursor: String!
}

input ParenthoodCreateMutationInput {
  userId: String!
  email: String!
  firstName: String!
  lastName: String!
  clientMutationId: String
}

type ParenthoodCreateMutationPayload {
  parenthood: Parenthood!
  viewer: Viewer!
  user: User!
  clientMutationId: String
}

input ParenthoodIsChildAllowedToParticipateInInternshipsMutationInput {
  parenthoodId: String!
  userId: String
  isChildAllowedToParticipateInInternships: Boolean!
  comment: String
  clientMutationId: String
}

type ParenthoodIsChildAllowedToParticipateInInternshipsMutationPayload {
  parenthood: Parenthood!
  clientMutationId: String
}

input ParenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutationInput {
  parenthoodId: String!
  userId: String
  isChildAllowedToParticipateInOccupationalExplorationEvents: Boolean!
  comment: String
  clientMutationId: String
}

type ParenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutationPayload {
  parenthood: Parenthood!
  clientMutationId: String
}

input ParenthoodIsVisibleForCompaniesMutationInput {
  parenthoodId: String!
  userId: String
  isVisibleForCompanies: Boolean!
  comment: String
  clientMutationId: String
}

type ParenthoodIsVisibleForCompaniesMutationPayload {
  parenthood: Parenthood!
  clientMutationId: String
}

input ParenthoodRemoveMutationInput {
  parenthoodId: String!
  clientMutationId: String
}

type ParenthoodRemoveMutationPayload {
  viewer: Viewer!
  user: User!
  clientMutationId: String
}

input ParenthoodRequestGDPRExportMutationInput {
  parenthoodId: String!
  clientMutationId: String
}

type ParenthoodRequestGDPRExportMutationPayload {
  parenthood: Parenthood!
  gdprExport: GDPRExport!
  clientMutationId: String
}

input ViewerQuestionAnswerInput {
  id: String!
  answer: Int!
  clientMutationId: String
}

type ViewerQuestionAnswerPayload {
  nextMainQuestion: Question
  nextQuestionForCategory: Question
  category: QuestionCategory!
  question: Question!
  viewer: Viewer!
  clientMutationId: String
}

input SchoolAddressInput {
  schoolId: String!
  addressId: String!
  clientMutationId: String
}

type SchoolAddressPayload {
  school: School!
  clientMutationId: String
}

input SchoolChangeAvatarInput {
  imageId: String!
  schoolId: String!
  clientMutationId: String
}

type SchoolChangeAvatarPayload {
  school: School!
  clientMutationId: String
}

input SchoolContactEmailInput {
  schoolId: String!
  contactEmail: String
  clientMutationId: String
}

type SchoolContactEmailPayload {
  school: School!
  clientMutationId: String
}

input SchoolCoverInput {
  schoolId: String!
  imageId: String!
  clientMutationId: String
}

type SchoolCoverPayload {
  school: School!
  clientMutationId: String
}

input SchoolCreateInput {
  districtId: String!
  googlePlaceId: String!
  schoolTypeId: String!
  clientMutationId: String
}

type SchoolCreatePayload {
  school: School!
  clientMutationId: String
}

input SchoolDescriptionInput {
  schoolId: String!
  description: String
  clientMutationId: String
}

type SchoolDescriptionPayload {
  school: School!
  clientMutationId: String
}

input SchoolFacilityAddInput {
  schoolFacilityId: String!
  schoolId: String!
  clientMutationId: String
}

type SchoolFacilityAddPayload {
  school: School!
  clientMutationId: String
}

input SchoolFacilityRemoveInput {
  schoolFacilityId: String!
  schoolId: String!
  clientMutationId: String
}

type SchoolFacilityRemovePayload {
  school: School!
  clientMutationId: String
}

input SchoolFacilityStoryInput {
  schoolFacilityId: String!
  schoolId: String!
  storyId: String!
  clientMutationId: String
}

type SchoolFacilityStoryPayload {
  school: School!
  clientMutationId: String
}

input SchoolFoundingYearInput {
  schoolId: String!
  foundingYear: Int
  clientMutationId: String
}

type SchoolFoundingYearPayload {
  school: School!
  clientMutationId: String
}

input SchoolHasBoardingCompletedInput {
  hasBoardingCompleted: Boolean!
  schoolId: String!
  clientMutationId: String
}

type SchoolHasBoardingCompletedPayload {
  school: School!
  clientMutationId: String
}

input SchoolManagerInviteInput {
  schoolId: String!
  email: String!
  clientMutationId: String
}

type SchoolManagerInvitePayload {
  invitation: Invitation!
  school: School!
  clientMutationId: String
}

input SchoolManagerRemoveInput {
  userId: String!
  schoolId: String!
  clientMutationId: String
}

type SchoolManagerRemovePayload {
  school: School!
  user: User!
  clientMutationId: String
}

input SchoolNameInput {
  schoolId: String!
  name: String
  clientMutationId: String
}

type SchoolNamePayload {
  school: School!
  clientMutationId: String
}

input SchoolPhoneNumberInput {
  schoolId: String!
  phoneNumber: String
  clientMutationId: String
}

type SchoolPhoneNumberPayload {
  school: School!
  clientMutationId: String
}

input SchoolSloganInput {
  schoolId: String!
  slogan: String
  clientMutationId: String
}

type SchoolSloganPayload {
  school: School!
  clientMutationId: String
}

input SchoolClassCreateInput {
  schoolId: String!
  schoolYearGroupId: String!
  name: String!
  primaryManagerUserId: String
  isQualifiedForOccupationalExploration: Boolean
  clientMutationId: String
}

type SchoolClassCreatePayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input SchoolWebsiteInput {
  schoolId: String!
  website: String
  clientMutationId: String
}

type SchoolWebsitePayload {
  school: School!
  clientMutationId: String
}

input SchoolClassIsQualifiedForOccupationalExplorationInput {
  schoolClassId: String!
  isQualifiedForOccupationalExploration: Boolean!
  clientMutationId: String
}

type SchoolClassIsQualifiedForOccupationalExplorationPayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input ContactRequestCreateByViewerInput {
  message: String!
  clientMutationId: String
}

type ContactRequestCreateByViewerPayload {
  result: Boolean!
  id: String!
  clientMutationId: String
}

input SchoolClassManagerAddInput {
  schoolClassId: String!
  userId: String!
  clientMutationId: String
}

type SchoolClassManagerAddPayload {
  schoolClass: SchoolClass!
  viewer: Viewer!
  clientMutationId: String
}

input SchoolClassManagerRemoveInput {
  schoolClassId: String!
  userId: String!
  clientMutationId: String
}

type SchoolClassManagerRemovePayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input SchoolClassNameInput {
  schoolClassId: String!
  name: String!
  clientMutationId: String
}

type SchoolClassNamePayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input SchoolClassUpdateAllInput {
  schoolClassId: String!
  schoolYearGroupId: String!
  name: String!
  schoolClassManagerUserIds: [String!]!
  clientMutationId: String
}

type SchoolClassUpdateAllPayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input SchoolClassYearGroupInput {
  schoolClassId: String!
  yearGroupId: String!
  clientMutationId: String
}

type SchoolClassYearGroupPayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input StudentInvitationInput {
  schoolClassId: String!
  email: String!
  clientMutationId: String
}

type StudentInvitationPayload {
  invitation: Invitation!
  schoolClass: SchoolClass!
  clientMutationId: String
}

input StudentJoinSchoolClassInput {
  invitationId: String!
  clientMutationId: String
}

type StudentJoinSchoolClassPayload {
  viewer: Viewer!
  clientMutationId: String
}

input StoryCreateDraftInput {
  imageId: String!
  context: StoryContextEnum!
  clientMutationId: String
}

type StoryCreateDraftPayload {
  story: Story!
  clientMutationId: String
}

input StudentLeaveSchoolClassInput {
  schoolClassId: String!
  userId: String!
  clientMutationId: String
}

type StudentLeaveSchoolClassPayload {
  schoolClass: SchoolClass!
  viewer: Viewer!
  clientMutationId: String
}

input StoryCreateFeedItemInput {
  storyId: String!
  clientMutationId: String
}

type StoryCreateFeedItemPayload {
  activityId: String!
  clientMutationId: String
}

input StoryItemImageInput {
  storyId: String!
  storyItemId: String!
  imageId: String!
  clientMutationId: String
}

type StoryItemImagePayload {
  storyItem: StoryItem!
  clientMutationId: String
}

input StoryItemTextInput {
  storyId: String!
  storyItemId: String!
  text: String!
  clientMutationId: String
}

type StoryItemTextPayload {
  storyItem: StoryItem!
  clientMutationId: String
}

input StoryTitleUpdateInput {
  storyId: String!
  title: String!
  clientMutationId: String
}

type StoryTitleUpdatePayload {
  story: Story!
  clientMutationId: String
}

input SystemImportThemeInput {
  result: String
  clientMutationId: String
}

type SystemImportThemePayload {
  system: System!
  clientMutationId: String
}

input UserCreateInput {
  districtId: String!
  invitationId: String
  firstName: String!
  lastName: String!
  email: String!
  password: String!
  clientMutationId: String
}

type UserCreatePayload {
  authToken: String!
  viewer: Viewer!
  clientMutationId: String
}

input UserResetPasswordInput {
  email: String!
  clientMutationId: String
}

type UserResetPasswordPayload {
  result: Boolean!
  clientMutationId: String
}

input UserResetPasswordSubmitInput {
  token: String!
  newPassword: String!
  clientMutationId: String
}

type UserResetPasswordSubmitPayload {
  result: Boolean!
  clientMutationId: String
}

input ViewerArchiveInput {
  password: String!
  clientMutationId: String
}

type ViewerArchivePayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerBillingInformationInput {
  billingAddressId: String
  billingEmail: String
  clientMutationId: String
}

type ViewerBillingInformationPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerBirthdayInput {
  birthday: Date!
  clientMutationId: String
}

scalar Date

type ViewerBirthdayPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerCancelSubscriptionInput {
  subscriptionId: String!
  clientMutationId: String
}

type ViewerCancelSubscriptionPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangeAvatarInput {
  imageId: String!
  clientMutationId: String
}

type ViewerChangeAvatarPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddOccupationalGroupInterestsInput {
  occupationalGroupIds: [String!]
  clientMutationId: String
}

type ViewerAddOccupationalGroupInterestsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangeEmailInput {
  newEmail: String!
  clientMutationId: String
}

type ViewerChangeEmailPayload {
  authToken: String!
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddFavoriteSchoolSubjectsInput {
  schoolSubjectIds: [String!]
  clientMutationId: String
}

type ViewerAddFavoriteSchoolSubjectsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangeGenderInput {
  gender: GenderEnum!
  clientMutationId: String
}

type ViewerChangeGenderPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangeNameInput {
  firstName: String!
  lastName: String!
  clientMutationId: String
}

type ViewerChangeNamePayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangePasswordInput {
  oldPassword: String!
  newPassword: String!
  clientMutationId: String
}

type ViewerChangePasswordPayload {
  result: Boolean!
  reason: PasswordChangeReasonEnum!
  clientMutationId: String
}

enum PasswordChangeReasonEnum {
  access_denied
  invalid_password
  email_address_needs_confirmation
  success
}

input ViewerContinueSubscriptionInput {
  subscriptionId: String!
  clientMutationId: String
}

type ViewerContinueSubscriptionPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerExpoPushTokenInput {
  districtId: String!
  expoToken: String!
  permissionStatus: String!
  clientMutationId: String
}

type ViewerExpoPushTokenPayload {
  expoPushToken: ExpoPushToken!
  clientMutationId: String
}

type ExpoPushToken implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
}

input ViewerGDPRExportInput {
  sendEmail: Boolean
  clientMutationId: String
}

type ViewerGDPRExportPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveFavoriteSchoolSubjectsInput {
  schoolSubjectIds: [String!]
  clientMutationId: String
}

type ViewerRemoveFavoriteSchoolSubjectsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input DeleteInternshipMutationInput {
  schoolClassInternshipId: String!
  clientMutationId: String
}

type DeleteInternshipMutationPayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input ViewerGrantCompanyProfileReadPermissionsMutationInput {
  companyId: String!
  name: Boolean!
  avatar: Boolean!
  birthday: Boolean!
  schoolGraduation: Boolean = true
  gender: Boolean!
  clientMutationId: String
}

type ViewerGrantCompanyProfileReadPermissionsMutationPayload {
  company: Company!
  viewer: Viewer!
  clientMutationId: String
}

input ViewerHasBoardingCompletedInput {
  hasBoardingCompleted: Boolean!
  clientMutationId: String
}

type ViewerHasBoardingCompletedPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddLanguageInput {
  languageId: String!
  percent: Int!
  clientMutationId: String
}

type ViewerAddLanguagePayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddOccupationalFieldInterestsInput {
  occupationalFieldIds: [String!]
  clientMutationId: String
}

type ViewerAddOccupationalFieldInterestsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerHometownInput {
  googlePlaceId: String!
  clientMutationId: String
}

type ViewerHometownPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerIsAvailableForInternshipMutationInput {
  isAvailableForInternship: Boolean!
  clientMutationId: String
}

type ViewerIsAvailableForInternshipMutationPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerIsAvailableForTrainingMutationInput {
  isAvailableForTraining: Boolean!
  clientMutationId: String
}

type ViewerIsAvailableForTrainingMutationPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerMembershipInput {
  membershipId: String!
  paymentInterval: PaymentIntervalEnum!
  clientMutationId: String
}

type ViewerMembershipPayload {
  viewer: Viewer!
  subscription: Subscription!
  clientMutationId: String
}

input ViewerNotificationSettingsInput {
  isEmailNotificationEnabled: Boolean
  isMobileNotificationEnabled: Boolean
  clientMutationId: String
}

type ViewerNotificationSettingsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveLanguageInput {
  languageId: String!
  clientMutationId: String
}

type ViewerRemoveLanguagePayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveOccupationalFieldInterestsInput {
  occupationalFieldIds: [String!]
  clientMutationId: String
}

type ViewerRemoveOccupationalFieldInterestsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveOccupationalGroupInterestsInput {
  occupationalGroupIds: [String!]
  clientMutationId: String
}

type ViewerRemoveOccupationalGroupInterestsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerPaymentMethodInput {
  stripePaymentMethodId: String
  clientMutationId: String
}

type ViewerPaymentMethodPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddProfessionalTrainingsInput {
  professionalTrainingIds: [String!]
  section: ProfessionalTrainingSectionEnum!
  clientMutationId: String
}

enum ProfessionalTrainingSectionEnum {
  completed
  interests
  internships
}

type ViewerAddProfessionalTrainingsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveProfessionalTrainingsInput {
  professionalTrainingIds: [String!]
  section: ProfessionalTrainingSectionEnum!
  clientMutationId: String
}

type ViewerRemoveProfessionalTrainingsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerResendConfirmationEmailInput {
  resendConfirmationEmail: Boolean!
  clientMutationId: String
}

type ViewerResendConfirmationEmailPayload {
  result: Boolean!
  clientMutationId: String
}

input ViewerSchoolGraduationInput {
  schoolGraduationId: String!
  clientMutationId: String
}

type ViewerSchoolGraduationPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerVisitMutationInput {
  targetToken: String!
  clientMutationId: String
}

type ViewerVisitMutationPayload {
  result: Boolean!
  viewer: Viewer!
  clientMutationId: String
}

input CreateInternshipMutationInput {
  schoolClassId: String!
  rrule: String!
  visibleForStudentsAt: DateTime!
  description: String
  clientMutationId: String
}

type CreateInternshipMutationPayload {
  internship: Internship!
  clientMutationId: String
}

Schema: guest

schema {
  query: Query
  mutation: Mutation
}

"The beAzubi GraphQL Query Interface"
type Query {
  admin: Admin
  system: System
  search: Search
  validation: Validation
  invitation(
    "code of the invitation"
    code: String!

    "Deprecated Field"
    districtId: String
  ): Invitation

  "Authorization required"
  occupationalExploration(
    "id of the occupationalExploration"
    id: String!
  ): OccupationalExploration

  "Authorization required"
  occupationalExplorationDay(
    "id of the occupationalExplorationDay"
    id: String!
  ): OccupationalExplorationDay

  "Authorization required"
  company(
    "id of the company"
    id: String!
  ): Company

  "Authorization required"
  question(
    "id of the question"
    id: String!
  ): Question

  "Authorization required"
  story(
    "id of the story"
    id: String!
  ): Story

  school(
    "id of the school"
    id: String!
  ): School

  "Authorization required"
  schoolClass(
    "id of the schoolClass"
    id: String!
  ): SchoolClass

  "Authorization required"
  viewer: Viewer

  "Authorization required"
  managedResource: ManagedResource

  user(
    "id of the user"
    id: String!
  ): User
  event(
    "id of the event"
    id: String!
  ): Event
  eventRating(
    "id of the eventRating"
    id: String!
  ): EventRating
  eventFair(
    "id of the eventFair"
    id: String!
  ): EventFair
  eventFairDay(
    "id of the eventFairDay"
    id: String!
  ): EventFairDay
  eventFairExhibitor(
    "id of the eventFairExhibitor"
    id: String!
  ): EventFairExhibitor
  googlePlace(
    "placeId"
    id: String!
  ): GooglePlace
  district(url: String, slug: String, id: String): District
  country(code: String, id: String): Country
  city(id: String): City
  countryAdministration(url: String, slug: String, id: String): CountryAdministration
  parenthood(id: String!): Parenthood
  achievement(id: String!): Achievement
  apiKey(id: String!): ApiKey
  internship(id: String!): Internship
  request(id: String!): Request
  booking(id: String!): Booking
}

type Admin {
  hasPermission: Boolean!
  users(after: String, first: Int, query: String = "", accountTypes: [AccountTypeEnum!] = []): UserConnection
  districts(after: String, first: Int, query: String = ""): DistrictConnection
  associations(after: String, first: Int, query: String = ""): AssociationConnection
  schools(after: String, first: Int, query: String = ""): SchoolConnection
  companies(after: String, first: Int, query: String = ""): CompanyConnection
}

enum AccountTypeEnum {
  SYSTEM_MANAGER
  COMPANY_MANAGER
  DISTRICT_MANAGER
  SCHOOL_MANAGER
  STUDENT
  USER
}

"A connection to a list of items."
type UserConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [UserEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"Information about pagination in a connection."
type PageInfo {
  "When paginating forwards, are there more items?"
  hasNextPage: Boolean!

  "When paginating backwards, are there more items?"
  hasPreviousPage: Boolean!

  "When paginating backwards, the cursor to continue."
  startCursor: String

  "When paginating forwards, the cursor to continue."
  endCursor: String
}

"An edge in a connection."
type UserEdge {
  "The item at the end of the edge."
  node: User!

  "A cursor for use in pagination."
  cursor: String!
}

type User implements EntityInterface & SearchResultInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  score: Float!
  shortId: String!
  name: String!
  viewerPrivacyPermission: UserPrivacyPermissionStatus!
  email: String
  initials: String!
  avatar: Image!
  gender: GenderEnum
  age: Int
  accountType: String!
  hometown: String
  district: District
  company: Company
  school: School
  schoolClass: SchoolClass
  schoolGraduation: SchoolGraduation
  favoriteSchoolSubjects: [SchoolSubject!]
  professionalTrainings: [ProfessionalTraining!]
  hasProfessionalTrainings: Boolean!
  professionalTrainingInterests: [ProfessionalTraining!]
  professionalTrainingInternships: [ProfessionalTraining!]
  hasProfessionalTrainingInternships: Boolean!
  occupationalFieldInterests: [OccupationalField!]
  occupationalGroupInterests: [OccupationalGroup!]
  questionSection(id: String!): QuestionSection
  questionSections(after: String, first: Int): QuestionSectionConnection
  isViewerFollowing: Boolean!
  languages: [UserLanguage!]
  isCompanyOwner: Boolean!
  isDistrictOwner: Boolean!
  isSchoolOwner: Boolean!
  isCompanyManager: Boolean!
  isDistrictManager: Boolean!
  isSchoolManager: Boolean!
  isAdmin: Boolean!
  profileCompletenessInPercent(section: UserProfileCompletenessEnum): Int!
  distanceToViewer: Float!
  traits(after: String, first: Int): UserTraitConnection
  viewerHasViewedProfileAt: DateTime
  eventParticipantForOccupationalExplorationDay(occupationalExplorationDayId: String!): EventParticipant
  parenthoods(after: String, first: Int, isActive: Boolean = null): ParenthoodConnection
  isParenthoodRequired: Boolean!
  hasActiveParenthood: Boolean!
  isVisibleForCompanies: Boolean!
  isAllowedToParticipateInOccupationalExplorationEvents: Boolean!
  isAllowedToParticipateInInternships: Boolean!
  isAvailableForTraining: Boolean!
  isAvailableForInternship: Boolean!
  achievements(after: String, first: Int): AchievementConnection
  internshipBookings(after: String, first: Int, before: String, last: Int): BookingConnection
  internshipRequests(after: String, first: Int, before: String, last: Int): RequestConnection
}

interface EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
}

scalar DateTime

interface SearchResultInterface {
  score: Float!
}

type UserPrivacyPermissionStatus {
  avatar: Boolean!
  name: Boolean!
  gender: Boolean!
  birthday: Boolean!
  schoolGraduation: Boolean!
}

type Image implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  url(width: Int = 500, height: Int = 500, quality: Int = 87): String!
  context: String!
  isDefaultImage: Boolean!
  unsplashImageId: String
  credits: String
}

enum GenderEnum {
  male
  female
  xyz
}

type District implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  productName: String!
  address: Address!
  slogan: String
  slug: String!
  isAllowedToCreateOccupationalExploration: Boolean!
  isViewerDistrictManager: Boolean!
  avatar: Image!
  cover: Image!
  description: String
  companyCount(period: PeriodEnum): Int!
  companyInDistrictCount: Int!
  activeStudentsCount(period: PeriodEnum): Int!
  activeUsersCount(period: PeriodEnum): Int!
  schoolCount: Int!
  schoolManagerCount: Int!
  schoolClassCount: Int!
  managers: [DistrictManager!]
  managerInvitations: [Invitation!]
  website: String
  phoneNumber: String
  contactEmail: String
  theme(variant: ThemeVariantEnum!): Theme!
  hasBoardingCompleted: Boolean!
  companies(after: String, first: Int, status: DistrictCompanyStatusEnum = default, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC, distance: Int, companyIndustryIds: [String!] = [], companySizeIds: [String!] = [], companyPropertyIds: [String!] = [], companyTypeIds: [String!] = []): CompanyConnection
  schools(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolConnection
  users(after: String, first: Int, query: String = null, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): UserConnection
  occupationalExplorations(after: String, first: Int): OccupationalExplorationConnection
  schoolClassInternships(after: String, first: Int): SchoolClassInternshipConnection
  schoolClassInternshipsForSchoolYear(after: String, first: Int, schoolYearId: String): SchoolClassInternshipConnection
}

type Address implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String
  street: String
  streetNumber: String
  additional: String
  postalCode: String
  city: String
  state: String
  country: Country!
  latitude: String
  longitude: String
  addressLine1: String!
  addressLine2: String
}

type Country implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  code: String!
  countryAdministrations: [CountryAdministration!]
}

type CountryAdministration implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  productName: String!
  slogan: String
  slug: String!
  token: String!
  theme: Theme!
  districts: [District!]
  districtCount: Int!
}

type Theme {
  id: String!
  name: String!
  isDefault: Boolean!
  colors: [Color!]
  graphics: [ThemeGraphic!]
}

type Color {
  key: String!
  value: String!
}

type ThemeGraphic {
  fileName: String!
  publicUrl: String!
  mimeType: String!
  fileSize: Int!
}

enum PeriodEnum {
  this_week
  last_week
  this_month
  last_month
  all_time
}

type DistrictManager implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  user: User!
  isOwner: Boolean!
  isViewer: Boolean!
}

type Invitation implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  district: District!
  isExpired: Boolean!
  code: String!
  url: String!
  accountType: String!
  invitationTarget: InvitationTarget!
  isRestrictedToEmailDomain: Boolean!
  isRestrictedToEmailAddress: Boolean!
  email: String
  emailDomain: String
  pdfPublicUrl: String
  qrCodeUrl(size: Int = 320): String!
  qrCode(size: Int = 320): QrCode!
}

type InvitationTarget implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  type: String!
  name: String!
  parentName: String!
}

type QrCode {
  base64Image: String!
}

enum ThemeVariantEnum {
  light
  dark
}

enum DistrictCompanyStatusEnum {
  default
  pending
  accepted
  denied
}

enum DistrictSortFieldEnum {
  name
  distance
  createdAt
}

enum SortDirectionEnum {
  ASC
  DESC
}

"A connection to a list of items."
type CompanyConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyEdge {
  "The item at the end of the edge."
  node: Company!

  "A cursor for use in pagination."
  cursor: String!
}

type Company implements EntityInterface & VerifiableInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  isVerified: Boolean!
  verifiedAt: DateTime
  isVerificationProcessStarted: Boolean!
  verificationRetryCount: Int!
  verificationRetryCountLimit: Int!
  name: String!
  isCompanyPlus: Boolean!
  address: Address!
  avatar: Image!
  cover: Image!
  website: String
  phoneNumber: String
  contactEmail: String
  description: String
  slogan: String
  foundingYear: Int
  type: CompanyType
  size: CompanySize
  industry: CompanyIndustry
  properties: [CompanyProperty!]
  images(after: String, first: Int): CompanyImageConnection
  hasBoardingCompleted: Boolean!
  isViewerFollowing: Boolean!
  profileCompletenessInPercent: Int!
  distanceToViewer: Float!
  isViewerCompanyManager: Boolean!
  isViewerCompanyOwner: Boolean!
  managers: [CompanyManager!] @deprecated(reason: "Moved to ManagedResource")
  managerInvitations: [Invitation!] @deprecated(reason: "Moved to ManagedResource")
  viewerPrivacyPermissionStatus: UserPrivacyPermissionStatus!
  socialMediaLinkedInUrl: String
  socialMediaFacebookUrl: String
  socialMediaXingUrl: String
  socialMediaYoutubeUrl: String
  socialMediaInstagramUrl: String
  socialMediaTwitterUrl: String
  activities(after: String, first: Int): ActivityConnection
  availableOccupationalExplorationsForSchoolYear(after: String, first: Int, schoolYearId: String): OccupationalExplorationConnection
  isMemberOfKlischeefrei: Boolean!
  city: City
  upcomingEventFairExhibitions(after: String, first: Int): EventFairConnection
  historicEventFairExhibitions(after: String, first: Int): EventFairConnection
  trainings(after: String, first: Int): CompanyTrainingConnection
  isInternshipRequestAllowed: Boolean!
  internshipStatus: CompanyInternshipStatus
}

interface VerifiableInterface {
  isVerified: Boolean!
  verifiedAt: DateTime
  isVerificationProcessStarted: Boolean!
  verificationRetryCount: Int!
  verificationRetryCountLimit: Int!
}

type CompanyType implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
}

type CompanySize implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
  size: Int!
  membership: Membership!
}

type Membership implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  type: MembershipTypeEnum!
  token: String!
  subscriptionPrice: SubscriptionPrice!
}

enum MembershipTypeEnum {
  district
  company
  school
  user
}

type SubscriptionPrice {
  priceAnnualTotal: Money!
  priceAnnualPerMonth: Money!
  priceMonthly: Money!
  taxRate: TaxRate!
}

type Money {
  currency: String!
  currencySymbol: String!
  formattedValueWithCurrencySign: String!
  formattedValue: String!
}

type TaxRate {
  name: String!
  percentage: Float!
  country: Country!
}

type CompanyIndustry implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  companyCount: Int!
}

type CompanyProperty implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  companyBenefit(companyId: String!): CompanyBenefit
}

type CompanyBenefit implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  company: Company!
  companyProperty: CompanyProperty!
  story: Story!
}

type Story implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  isReadyToPublish: Boolean!
  owner: Actor!
  status: StoryStatusEnum!
  context: StoryContextEnum!
  image: Image!
  title: String
  text: String
  primaryItem: StoryItem
  item(id: String!): StoryItem
  items(after: String, first: Int): StoryItemConnection
}

type Actor implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  avatar: Image!
  accountType: String!
}

enum StoryStatusEnum {
  DRAFT
  ACTIVE
  DELETED
}

enum StoryContextEnum {
  ACTIVITY
  JOB_DESCRIPTION
  COMPANY_BENEFIT
  SCHOOL_FACILITY
}

type StoryItem implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  story: Story!
  type: StoryItemTypeEnum!
  position: Int!
  image: Image
  text: String
}

enum StoryItemTypeEnum {
  IMAGE
  IMAGE_TEXT
  VIDEO
  LINK
  TEXT
}

"A connection to a list of items."
type StoryItemConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [StoryItemEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type StoryItemEdge {
  "The item at the end of the edge."
  node: StoryItem!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanyImageConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyImageEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyImageEdge {
  "The item at the end of the edge."
  node: CompanyImage!

  "A cursor for use in pagination."
  cursor: String!
}

type CompanyImage implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  image: Image!
  position: Int!
  description: String
}

type CompanyManager implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  user: User!
  isOwner: Boolean!
  isViewer: Boolean!
}

"A connection to a list of items."
type ActivityConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ActivityEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ActivityEdge {
  "The item at the end of the edge."
  node: Activity!

  "A cursor for use in pagination."
  cursor: String!
}

type Activity implements EntityInterface & ActivityInterface {
  id: ID!
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  actor: Actor!
  activityId: String!
  content: FeedItemContent!
}

interface ActivityInterface {
  id: ID!
  createdAt: DateTime!
  actor: Actor!
  activityId: String!
  deepLink: String
  content: FeedItemContent!
}

type FeedItemContent implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  image: Image!
  title: String
  text: String
}

"A connection to a list of items."
type OccupationalExplorationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalExplorationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalExplorationEdge {
  "The item at the end of the edge."
  node: OccupationalExploration!

  "A cursor for use in pagination."
  cursor: String!
}

type OccupationalExploration implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  district: District!
  cover: Image!
  description: String
  numberOfEventsParticipatedByStudent: Int!
  studentCount: Int!
  participationMustBeDifferentInOccupationalGroups: Boolean!
  schoolYear: SchoolYear!
  days: [OccupationalExplorationDay!]
  dayCount: Int!
  day(dayId: String!): OccupationalExplorationDay
  maxNumberOfParticipants: Int!
  participantCount: Int!
  participatingCompaniesCount: Int!
  participatingCompanies: [Company!]
  qualifiedSchoolClasses: [SchoolClass!]
  qualifiedSchoolClassesCount: Int!
  occupationalGroups: [OccupationalGroup!]
  eventCount: Int!
  isVisibleForStudentsAt: DateTime!
  isVisibleForCompaniesAt: DateTime!
  eventsByCompany(after: String, first: Int, companyId: String!): EventConnection
  eventStatistic: EventStatistic
}

type SchoolYear implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  startAt: DateTime!
  endAt: DateTime!
  isActive: Boolean!
}

type OccupationalExplorationDay implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  occupationalExploration: OccupationalExploration!
  date: DateTime!
  maxNumberOfParticipants: Int!
  participantCount(schoolClassId: String): Int!
  participatingCompaniesCount: Int!
  participatingCompanies: [Company!]
  countAvailablePlaces: Int!
  occupationalGroups: [OccupationalGroup!]
  isDeletable: Boolean!
  schools: [School!]
  qualifiedSchoolClasses: [SchoolClass!]
  qualifiedSchoolClassesCount: Int!
  events: [Event!]
  eventCount: Int!
  eventsAvailableForViewer(after: String, first: Int): EventConnection
  eventParticipantForViewer: EventParticipant
}

type OccupationalGroup implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
  occupationalExplorationEventCount: Int!
  occupationalExplorationMaxNumberOfParticipantsCount: Int!
  occupationalExplorationParticipantCount: Int!
}

type School implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  avatar: Image!
  district: District!
  type: SchoolType!
  hasBoardingCompleted: Boolean!
  schoolClasses(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = DESC): SchoolClassConnection
  address: Address!
  cover: Image
  website: String
  phoneNumber: String
  contactEmail: String
  description: String
  slogan: String
  foundingYear: Int
  studentCount: Int!
  schoolManagerCount: Int!
  schoolClassCount: Int!
  isViewerSchoolManager: Boolean!
  isViewerSchoolOwner: Boolean!
  managers: [SchoolManager!]
  managerInvitations: [Invitation!]
  facilities: [SchoolFacility!]
  yearGroups: [SchoolClassYearGroup!]
  occupationalExplorationDaysForSchoolYear(after: String, first: Int, schoolYearId: String): OccupationalExplorationDayConnection
  schoolClassInternships(after: String, first: Int): SchoolClassInternshipConnection
  schoolClassInternshipsForSchoolYear(after: String, first: Int, schoolYearId: String): SchoolClassInternshipConnection
}

type SchoolType implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

"A connection to a list of items."
type SchoolClassConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolClassEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolClassEdge {
  "The item at the end of the edge."
  node: SchoolClass!

  "A cursor for use in pagination."
  cursor: String!
}

type SchoolClass implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  type: SchoolClassTypeEnum!
  school: School!
  avatar: Image!
  studentCount(filter: SchoolClassStudentFilterEnum! = ALL): Int!
  activeSchoolYear: SchoolYear!
  yearGroup: SchoolClassYearGroup!
  occupationalExplorationDaysForActiveSchoolYear: [OccupationalExplorationDay!]
  occupationalExplorationDayForActiveSchoolYear(id: String!): OccupationalExplorationDay
  primaryManager: User
  managers(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = DESC): UserConnection
  primaryInvitation: Invitation!
  studentInvitations: [Invitation!]
  isQualifiedForOccupationalExploration: Boolean!
  students(after: String, first: Int, filter: SchoolClassStudentFilterEnum = COMPLETE, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = DESC): UserConnection
  occupationalExplorationAchievementCollections(after: String, first: Int): OccupationalExplorationSchoolClassAchievementCollectionConnection
  isDeletable: Boolean!
  isGraduatingClass: Boolean!
  internships(after: String, first: Int): SchoolClassInternshipConnection
  internshipsForSchoolYear(after: String, first: Int, schoolYearId: String): SchoolClassInternshipConnection
}

enum SchoolClassTypeEnum {
  SECONDARY_SEK1
  SECONDARY_SEK2
}

enum SchoolClassStudentFilterEnum {
  COMPLETE
  INCOMPLETE
  ALL
}

type SchoolClassYearGroup implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  groupNumber: Int!
  isQualifiedForOccupationalExploration: Boolean!
  schoolClasses(schoolId: String!): [SchoolClass!]
  isGraduatingSchoolYear: Boolean!
}

"A connection to a list of items."
type OccupationalExplorationSchoolClassAchievementCollectionConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalExplorationSchoolClassAchievementCollectionEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalExplorationSchoolClassAchievementCollectionEdge {
  "The item at the end of the edge."
  node: OccupationalExplorationSchoolClassAchievementCollection!

  "A cursor for use in pagination."
  cursor: String!
}

type OccupationalExplorationSchoolClassAchievementCollection implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  fileCount: Int!
  zipFile: File!
  isViewerAllowedToDownloadZipFile: Boolean!
}

type File implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  mimeType: String!
  isViewerAllowedToDownloadFile: Boolean!
}

"A connection to a list of items."
type SchoolClassInternshipConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolClassInternshipEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolClassInternshipEdge {
  "The item at the end of the edge."
  node: Internship!

  "A cursor for use in pagination."
  cursor: String!
}

type Internship {
  id: String!
  schoolClass: SchoolClass!
  schoolYear: SchoolYear!
  startAt: DateTime!
  rrule: String!
  endAt: DateTime!
  interval: Interval!
  isOver: Boolean!
  visibleForStudentsAt: DateTime!
  isVisibleForStudents: Boolean!
  isActive: Boolean!
  isDeletable: Boolean!
  description: String
  internshipSuggestions(searchQuery: String, professionalCategoryIds: [String!], distance: DistanceEnum = DISTANCE_50): InternshipSuggestions
  activeViewerInternshipRequest: Request
  requests(after: String, first: Int): RequestConnection
}

type Interval {
  startDate: DateTime!
  endDate: DateTime!
  dates: [DateTime!]
  rrule: String!
  weekdays: [String!]
}

enum DistanceEnum {
  DISTANCE_10
  DISTANCE_25
  DISTANCE_50
  DISTANCE_100
  DISTANCE_250
  DISTANCE_500
}

type InternshipSuggestions {
  id: ID
  companies(after: String, first: Int): CompanyConnection
  companyTrainings(after: String, first: Int): CompanyTrainingConnection
}

"A connection to a list of items."
type CompanyTrainingConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyTrainingEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyTrainingEdge {
  "The item at the end of the edge."
  node: CompanyTraining!

  "A cursor for use in pagination."
  cursor: String!
}

type CompanyTraining implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  company: Company!
  professionalTraining: ProfessionalTraining!
  isInternshipRequestAllowed: Boolean!
  isDeletable: Boolean!
}

type ProfessionalTraining implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
  type: ProfessionalTrainingType!
  category: ProfessionalTrainingCategory!
  categories: [ProfessionalTrainingCategory!]
  isForPeopleWithDisabilities: Boolean!
}

type ProfessionalTrainingType implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
}

type ProfessionalTrainingCategory implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
  isParent: Boolean!
  isChild: Boolean!
  parent: ProfessionalTrainingCategory
  children(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): ProfessionalTrainingCategoryConnection
  professionalTrainings(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): ProfessionalTrainingConnection
}

"A connection to a list of items."
type ProfessionalTrainingCategoryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ProfessionalTrainingCategoryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ProfessionalTrainingCategoryEdge {
  "The item at the end of the edge."
  node: ProfessionalTrainingCategory!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type ProfessionalTrainingConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ProfessionalTrainingEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ProfessionalTrainingEdge {
  "The item at the end of the edge."
  node: ProfessionalTraining!

  "A cursor for use in pagination."
  cursor: String!
}

type Request {
  id: String!
  student: User!
  company: Company!
  createdAt: DateTime!
  updatedAt: DateTime!
  internship: Internship
  startAt: DateTime!
  endAt: DateTime!
  expiresAt: DateTime!
  rrule: String!
  status: String!
  statusUpdatedAt: DateTime
  requestMessage: String
  responseMessage: String
  expiresAtInSeconds: Int
  interval: Interval
  schoolClass: SchoolClass
  companyTraining: CompanyTraining!
}

"A connection to a list of items."
type RequestConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [RequestEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type RequestEdge {
  "The item at the end of the edge."
  node: Request!

  "A cursor for use in pagination."
  cursor: String!
}

type SchoolManager implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  user: User!
  isOwner: Boolean!
  isViewer: Boolean!
}

type SchoolFacility implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
  story(schoolId: String!): Story
}

"A connection to a list of items."
type OccupationalExplorationDayConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalExplorationDayEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalExplorationDayEdge {
  "The item at the end of the edge."
  node: OccupationalExplorationDay!

  "A cursor for use in pagination."
  cursor: String!
}

type Event implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  host: Actor!
  eventSeries: EventSeries!
  name: String!
  title: String!
  cover: Image!
  occupationalGroup: OccupationalGroup
  isOccupationalExplorationEvent: Boolean!
  isViewerEventHost: Boolean!
  occupationalExploration: OccupationalExploration
  address: Address!
  startAt: DateTime!
  endAt: DateTime!
  isOver: Boolean!
  isPublic: Boolean!
  participants(after: String, first: Int): EventParticipantConnection
  participantQuestions: [EventParticipantQuestion!]
  canViewerApplyToEvent: Boolean!
  isViewerEventParticipant: Boolean!
  viewerEventParticipant: EventParticipant
  participantCount: Int!
  maxNumberOfParticipants: Int
  isSoldOut: Boolean!
  primaryDescription: String
  secondaryDescription: String
  processDescription: String
  contactPerson: String
  contactPhoneNumber: String
  contactEmail: String
  isSuitableForPeopleWithMentalDisabilities: Boolean!
  isSuitableForPeopleWithWalkingDisabilities: Boolean!
  isSuitableForPeopleWithSpeechDisabilities: Boolean!
  isSuitableForPeopleWithLowVision: Boolean!
  isSuitableForPeopleWithHearingWeakness: Boolean!
  distanceToViewer: Float!
  archiveReason: String
  participationConfirmationToken: String
  openConfirmationParticipants(after: String, first: Int): EventParticipantConnection
  confirmationCodePdfFile: File
  eventStatistic: EventStatistic
}

type EventSeries implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  cover: Image!
  description: String
  owner: Actor!
  events: [Event!]
  eventStatistic: EventStatistic
}

type EventStatistic {
  eventCount: Int!
  participantTotalCount: Int!
  completedEventRatingCount: Int!
  questionWereYourQuestionsAnsweredAverageRating: Float!
  questionCouldYouImagineUndergoingTrainingAtTheCompanyRating: Float!
  questionHowDidYouLikeTheAppointmentRating: Float!
  questionWouldYouLikeToStayInContactWithTheCompanyPercent: Float!
}

"A connection to a list of items."
type EventParticipantConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [EventParticipantEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type EventParticipantEdge {
  "The item at the end of the edge."
  node: EventParticipant!

  "A cursor for use in pagination."
  cursor: String!
}

type EventParticipant implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  event: Event!
  user: User!
  processDescription: String
  questionAnswers: [EventParticipantQuestionAnswer!]
  status: EventParticipantStatusEnum!
  contactPerson: String
}

type EventParticipantQuestionAnswer implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  question: String!
  answer: String
}

enum EventParticipantStatusEnum {
  CONFIRMATION_PENDING
  PARTICIPATED
  NOT_PARTICIPATED
}

type EventParticipantQuestion implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  question: String!
  position: Int!
}

"A connection to a list of items."
type EventConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [EventEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type EventEdge {
  "The item at the end of the edge."
  node: Event!

  "A cursor for use in pagination."
  cursor: String!
}

type City implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  country: Country!
  postalCode: String!
  longitude: Float!
  latitude: Float!
}

"A connection to a list of items."
type EventFairConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [EventFairEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type EventFairEdge {
  "The item at the end of the edge."
  node: EventFair!

  "A cursor for use in pagination."
  cursor: String!
}

type EventFair implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  title: String!
  cover: Image!
  address: Address!
  description: String
  days: [EventFairDay!]
  exhibitors(after: String, first: Int, onlyWithEvents: Boolean = false): EventFairExhibitorConnection!
  viewerExhibitor: EventFairExhibitor
  isVisibleForUsersAt: DateTime!
  isViewerOwner: Boolean!
  isViewerExhibitor: Boolean!
  maxParticipantsCount: Int!
  participantCount: Int!
  availablePlacesCount: Int!
  distanceToViewer: Float!
  viewerParticipatingEvents(after: String, first: Int): EventConnection!
  isViewerParticipant: Boolean!
  eventStatistic: EventStatistic
}

type EventFairDay implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  eventFair: EventFair!
  name: String!
  startAt: DateTime!
  endAt: DateTime!
  isDeletable: Boolean!
  events(
    after: String
    first: Int

    "id of the eventFairExhibitor"
    exhibitorId: String!
  ): EventConnection!
  maxParticipantsCount: Int!
  maxParticipantsByExhibitorCount(
    "id of the eventFairExhibitor"
    exhibitorId: String!
  ): Int!
  participantCount: Int!
  participantByExhibitorCount(
    "id of the eventFairExhibitor"
    exhibitorId: String!
  ): Int!
  availablePlacesCount: Int!
  availablePlacesByExhibitorCount(
    "id of the eventFairExhibitor"
    exhibitorId: String!
  ): Int!
  viewerParticipatingEvents(after: String, first: Int): EventConnection!
  isViewerParticipant: Boolean!
  eventStatistic: EventStatistic
}

"A connection to a list of items."
type EventFairExhibitorConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [EventFairExhibitorEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type EventFairExhibitorEdge {
  "The item at the end of the edge."
  node: EventFairExhibitor!

  "A cursor for use in pagination."
  cursor: String!
}

type EventFairExhibitor implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  eventFair: EventFair!
  company: Company!
  boothInformation: String
  name: String!
  avatar: Image!
  startAt: DateTime!
  endAt: DateTime!
  events(
    after: String
    first: Int

    "id of the eventFairDay"
    dayId: String!
  ): EventConnection!
  maxParticipantsCount: Int!
  maxParticipantsByDayCount(
    "id of the eventFairDay"
    dayId: String!
  ): Int!
  participantCount: Int!
  participantByDayCount(
    "id of the eventFairDay"
    dayId: String!
  ): Int!
  availablePlacesCount: Int!
  availablePlacesByDayCount(
    "id of the eventFairDay"
    dayId: String!
  ): Int!
  eventStatistic: EventStatistic
  isDeletable: Boolean!
}

type CompanyInternshipStatus {
  company: Company!
  pendingInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = CREATED, orderDirection: RequestOrderDirectionEnum = ASC): InternshipRequestConnection
  rejectedInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = DECLINED, orderDirection: RequestOrderDirectionEnum = DESC): InternshipRequestConnection
  acceptedInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = ACCEPTED, orderDirection: RequestOrderDirectionEnum = ASC): InternshipRequestConnection
  canceledInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = DECLINED, orderDirection: RequestOrderDirectionEnum = ASC): InternshipRequestConnection
  declinedInternshipRequests(after: String, first: Int, orderBy: RequestOrderByEnum = CREATED, orderDirection: RequestOrderDirectionEnum = DESC): InternshipRequestConnection
}

enum RequestOrderByEnum {
  CREATED
  ACCEPTED
  DECLINED
  EXPIRED
}

enum RequestOrderDirectionEnum {
  ASC
  DESC
}

"A connection to a list of items."
type InternshipRequestConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [InternshipRequestEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type InternshipRequestEdge {
  "The item at the end of the edge."
  node: Request!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolEdge {
  "The item at the end of the edge."
  node: School!

  "A cursor for use in pagination."
  cursor: String!
}

type SchoolGraduation implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

type SchoolSubject implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

type OccupationalField implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  name: String!
}

type QuestionSection implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  categories(after: String, first: Int): QuestionCategoryConnection
  category(id: String!): QuestionCategory
  unansweredQuestionCount: Int!
  answeredQuestionCount(userId: String): Int!
}

"A connection to a list of items."
type QuestionCategoryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [QuestionCategoryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type QuestionCategoryEdge {
  "The item at the end of the edge."
  node: QuestionCategory!

  "A cursor for use in pagination."
  cursor: String!
}

type QuestionCategory implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  unansweredQuestionCount: Int!
  section: QuestionSection!
  answeredQuestionCount(userId: String): Int!
  nextQuestion: Question
  answeredMainQuestion(userId: String): Question
  answeredMainQuestions(after: String, first: Int, userId: String): QuestionConnection
  answeredChildQuestions(after: String, first: Int, userId: String): QuestionConnection
  tags(after: String, first: Int): QuestionTagConnection
}

type Question implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  questionText: String!
  isMainQuestion: Boolean!
  answerValue: Int
}

"A connection to a list of items."
type QuestionConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [QuestionEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type QuestionEdge {
  "The item at the end of the edge."
  node: Question!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type QuestionTagConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [QuestionTagEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type QuestionTagEdge {
  "The item at the end of the edge."
  node: QuestionTag!

  "A cursor for use in pagination."
  cursor: String!
}

type QuestionTag {
  name: String!
  token: String!
}

"A connection to a list of items."
type QuestionSectionConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [QuestionSectionEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type QuestionSectionEdge {
  "The item at the end of the edge."
  node: QuestionSection!

  "A cursor for use in pagination."
  cursor: String!
}

type UserLanguage implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
  percent: Int!
  language: Language!
}

type Language implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

enum UserProfileCompletenessEnum {
  boarding
  questions
  training_completed
  training_school
  training_interests
  training_language
}

"A connection to a list of items."
type UserTraitConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [UserTraitEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type UserTraitEdge {
  "The item at the end of the edge."
  node: UserTrait!

  "A cursor for use in pagination."
  cursor: String!
}

type UserTrait implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  user: User!
  points: Float!
  avgFactor: Float!
}

"A connection to a list of items."
type ParenthoodConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ParenthoodEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ParenthoodEdge {
  "The item at the end of the edge."
  node: Parenthood!

  "A cursor for use in pagination."
  cursor: String!
}

type Parenthood implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
  parentUser: User!
  childUser: User!
  isActive: Boolean!
  isVisibleForCompanies: Boolean!
  isChildAllowedToParticipateInOccupationalExplorationEvents: Boolean!
  isChildAllowedToParticipateInInternships: Boolean!
  gdprExports(after: String, first: Int): GDPRExportConnection
}

"A connection to a list of items."
type GDPRExportConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [GDPRExportEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type GDPRExportEdge {
  "The item at the end of the edge."
  node: GDPRExport!

  "A cursor for use in pagination."
  cursor: String!
}

type GDPRExport implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  status: GDPRStatusEnum!
  parenthood: Parenthood
  downloadedAt: DateTime!
}

enum GDPRStatusEnum {
  pending
  processing
  completed
  downloaded
  failed
}

"A connection to a list of items."
type AchievementConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [AchievementEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type AchievementEdge {
  "The item at the end of the edge."
  node: Achievement!

  "A cursor for use in pagination."
  cursor: String!
}

type Achievement implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  type: AchievementTypeEnum!
  avatar: Image!
  text(locale: LocaleEnum = de): String!
  isViewerAchievementOwner: Boolean!
  isVisibleOnProfile: Boolean!
  pdfFile: File!
}

enum AchievementTypeEnum {
  OCCUPATIONAL_EXPLORATION_EVENT_PARTICIPATION
  EVENT_PARTICIPATION
}

enum LocaleEnum {
  de
  en
}

"A connection to a list of items."
type BookingConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [BookingEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type BookingEdge {
  "The item at the end of the edge."
  node: Booking!

  "A cursor for use in pagination."
  cursor: String!
}

type Booking {
  id: String
  student: User
  company: Company
  startAt: DateTime!
  endAt: DateTime!
  rrule: String
  contactPerson: String
  contactPhoneNumber: String
  startTime: String
  endTime: String
}

"A connection to a list of items."
type DistrictConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [DistrictEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type DistrictEdge {
  "The item at the end of the edge."
  node: District!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type AssociationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [AssociationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type AssociationEdge {
  "The item at the end of the edge."
  node: Association!

  "A cursor for use in pagination."
  cursor: String!
}

type Association implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  address: Address!
  avatar: Image!
  cover: Image!
}

type System implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  mode: SystemModeEnum!
  productName: String!
  slogan: String
  slug: String!
  avatar: Image!
  email: String!
  serverVersion: String!
  isTestRun: Boolean!
  locales: [LocaleEnum!]
  googlePlacesKey: String!
  stripePublicKey: String!
  theme(variant: ThemeVariantEnum!): Theme!
  themeRepositoryHasUncommittedChanges: Boolean!
  themes(variant: ThemeVariantEnum!): [Theme!]
  schoolYears: [SchoolYear!]
  activeSchoolYear: SchoolYear!
  districts(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): DistrictConnection
  countries(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CountryConnection
  cities(after: String, first: Int, query: String, sortBy: CitySortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CityConnection
  companies(after: String, first: Int, status: DistrictCompanyStatusEnum = default, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC, distance: Int, companyIndustryIds: [String!] = [], companySizeIds: [String!] = [], companyPropertyIds: [String!] = [], companyTypeIds: [String!] = [], districtIds: [String!] = [], cityIds: [String!] = []): CompanyConnection
  companyCount(period: PeriodEnum): Int!
  companyIndustries(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CompanyIndustryConnection
  companyTypes(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CompanyTypeConnection
  companySizes(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CompanySizeConnection
  companyProperties(after: String, first: Int, query: String, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): CompanyPropertyConnection
  questionSections(after: String, first: Int): QuestionSectionConnection
  professionalTrainingCategories(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): ProfessionalTrainingCategoryConnection
  schoolGraduations(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolGraduationConnection
  schoolSubjects(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolSubjectConnection
  occupationalGroups(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): OccupationalGroupConnection
  occupationalFields(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): OccupationalFieldConnection
  languages(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): LanguageConnection
  blogs(after: String, first: Int): SystemBlogConnection
  schoolTypes(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolTypeConnection
  schoolProperties(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolPropertyConnection
  schoolFacilities(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolFacilityConnection
  schoolClassYearGroups(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): SchoolClassYearGroupConnection
  feedbackReasons(after: String, first: Int, sortBy: DistrictSortFieldEnum = name, sortDirection: SortDirectionEnum = ASC): FeedbackReasonConnection
}

enum SystemModeEnum {
  active
  business_name
}

"A connection to a list of items."
type CountryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CountryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CountryEdge {
  "The item at the end of the edge."
  node: Country!

  "A cursor for use in pagination."
  cursor: String!
}

enum CitySortFieldEnum {
  name
  createdAt
}

"A connection to a list of items."
type CityConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CityEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CityEdge {
  "The item at the end of the edge."
  node: City!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanyIndustryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyIndustryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyIndustryEdge {
  "The item at the end of the edge."
  node: CompanyIndustry!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanyTypeConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyTypeEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyTypeEdge {
  "The item at the end of the edge."
  node: CompanyType!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanySizeConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanySizeEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanySizeEdge {
  "The item at the end of the edge."
  node: CompanySize!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type CompanyPropertyConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [CompanyPropertyEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type CompanyPropertyEdge {
  "The item at the end of the edge."
  node: CompanyProperty!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolGraduationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolGraduationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolGraduationEdge {
  "The item at the end of the edge."
  node: SchoolGraduation!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolSubjectConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolSubjectEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolSubjectEdge {
  "The item at the end of the edge."
  node: SchoolSubject!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type OccupationalGroupConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalGroupEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalGroupEdge {
  "The item at the end of the edge."
  node: OccupationalGroup!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type OccupationalFieldConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalFieldEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalFieldEdge {
  "The item at the end of the edge."
  node: OccupationalField!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type LanguageConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [LanguageEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type LanguageEdge {
  "The item at the end of the edge."
  node: Language!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SystemBlogConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SystemBlogEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SystemBlogEdge {
  "The item at the end of the edge."
  node: SystemBlog!

  "A cursor for use in pagination."
  cursor: String!
}

type SystemBlog implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  title: String!
  description: String!
  url: String!
  imageUrl: String!
  tags: [String!]
  primaryTag: String!
}

"A connection to a list of items."
type SchoolTypeConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolTypeEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolTypeEdge {
  "The item at the end of the edge."
  node: SchoolType!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolPropertyConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolPropertyEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolPropertyEdge {
  "The item at the end of the edge."
  node: SchoolProperty!

  "A cursor for use in pagination."
  cursor: String!
}

type SchoolProperty implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

"A connection to a list of items."
type SchoolFacilityConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolFacilityEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolFacilityEdge {
  "The item at the end of the edge."
  node: SchoolFacility!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type SchoolClassYearGroupConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [SchoolClassYearGroupEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type SchoolClassYearGroupEdge {
  "The item at the end of the edge."
  node: SchoolClassYearGroup!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type FeedbackReasonConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [FeedbackReasonEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type FeedbackReasonEdge {
  "The item at the end of the edge."
  node: FeedbackReason!

  "A cursor for use in pagination."
  cursor: String!
}

type FeedbackReason implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  token: String!
}

type Search {
  userSearch(after: String, first: Int, before: String, last: Int, districtId: String, schoolId: String, distance: Int, isAvailableForInternship: Boolean = true, isAvailableForTraining: Boolean = true, tags: [String!]): UserConnection
  unsplashImageSearch(query: String!, page: Int = 1, limit: Int = 24): UnsplashImageSearchResult!
  autocompleteCompanies(after: String, first: Int, query: String!, districtId: String): AutocompleteResultItemConnection
}

type UnsplashImageSearchResult {
  total: Int!
  totalPages: Int!
  images: [UnsplashImage!]
}

type UnsplashImage {
  id: String!
  url(type: UnsplashImageTypeEnum!): String!
  credits: String!
}

enum UnsplashImageTypeEnum {
  RAW
  FULL
  REGULAR
  SMALL
  THUMB
  SMALL_S3
}

"A connection to a list of items."
type AutocompleteResultItemConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [AutocompleteResultItemEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type AutocompleteResultItemEdge {
  "The item at the end of the edge."
  node: AutocompleteResultItem!

  "A cursor for use in pagination."
  cursor: String!
}

type AutocompleteResultItem {
  id: String!
  title: String!
  subTitle: String!
  entityId: String!
  entityType: String!
  entityToken: String!
  districtId: String
  avatarSmallUrl: String!
  avatarMiddleUrl: String!
  avatarLargeUrl: String!
}

type Validation {
  isUsernameAlreadyInUse(username: String!): Boolean!
  isEmailAlreadyInUse(email: String!): Boolean!
}

"This is you"
type Viewer implements EntityInterface & SearchResultInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  score: Float!
  shortId: String!
  name: String!
  viewerPrivacyPermission: UserPrivacyPermissionStatus!
  email: String!
  initials: String!
  avatar: Image!
  gender: GenderEnum
  age: Int
  accountType: String!
  hometown: String
  district: District
  company: Company
  school: School
  schoolClass: SchoolClass
  schoolGraduation: SchoolGraduation
  favoriteSchoolSubjects: [SchoolSubject!]
  professionalTrainings: [ProfessionalTraining!]
  hasProfessionalTrainings: Boolean!
  professionalTrainingInterests: [ProfessionalTraining!]
  professionalTrainingInternships: [ProfessionalTraining!]
  hasProfessionalTrainingInternships: Boolean!
  occupationalFieldInterests: [OccupationalField!]
  occupationalGroupInterests: [OccupationalGroup!]
  questionSection(id: String!): QuestionSection
  questionSections(after: String, first: Int): QuestionSectionConnection
  isViewerFollowing: Boolean!
  languages: [UserLanguage!]
  isCompanyOwner: Boolean!
  isDistrictOwner: Boolean!
  isSchoolOwner: Boolean!
  isCompanyManager: Boolean!
  isDistrictManager: Boolean!
  isSchoolManager: Boolean!
  isAdmin: Boolean!
  profileCompletenessInPercent(section: UserProfileCompletenessEnum): Int!
  distanceToViewer: Float!
  traits(after: String, first: Int): UserTraitConnection
  viewerHasViewedProfileAt: DateTime
  eventParticipantForOccupationalExplorationDay(occupationalExplorationDayId: String!): EventParticipant
  parenthoods(after: String, first: Int, isActive: Boolean = null): ParenthoodConnection
  isParenthoodRequired: Boolean!
  hasActiveParenthood: Boolean!
  isVisibleForCompanies: Boolean!
  isAllowedToParticipateInOccupationalExplorationEvents: Boolean!
  isAllowedToParticipateInInternships: Boolean!
  isAvailableForTraining: Boolean!
  isAvailableForInternship: Boolean!
  achievements(after: String, first: Int): AchievementConnection
  internshipBookings(after: String, first: Int, before: String, last: Int): BookingConnection
  internshipRequests(after: String, first: Int, before: String, last: Int): RequestConnection
  firstName: String!
  lastName: String!
  username: String!
  birthday: DateTime
  isEmailNotificationEnabled: Boolean!
  isMobileNotificationEnabled: Boolean!
  isEmailAddressConfirmed: Boolean!
  hasBoardingCompleted: Boolean!
  notifications(after: String, first: Int): NotificationConnection
  feed(after: String, first: Int): FeedItemConnection
  chatConversations(after: String, first: Int): ChatConversationConnection @deprecated(reason: "Moved to ManagedResource")
  chatConversation(id: String!): ChatConversation @deprecated(reason: "Moved to ManagedResource")
  unreadCount: UnreadCount!
  notification(id: String!): Notification
  nextMainQuestion: Question
  answeredQuestionCount: Int!
  storyDrafts(after: String, first: Int, context: StoryContextEnum!): StoryConnection
  feedbackKey: String!
  feedbackUrl: String!
  userFollowings(after: String, first: Int): UserConnection
  companiesWithProfileReadPermission(after: String, first: Int): CompanyConnection
  showOccupationalExplorationModule: Boolean!
  profileCompletenessFirstTimeAt: DateTime
  paymentMethod: PaymentMethod @deprecated(reason: "Moved to ManagedResource")
  membership: Membership! @deprecated(reason: "Moved to ManagedResource")
  hasSubscription: Boolean! @deprecated(reason: "Moved to ManagedResource")
  hasActiveSubscription: Boolean! @deprecated(reason: "Moved to ManagedResource")
  canChangeMembershipManual: Boolean! @deprecated(reason: "Moved to ManagedResource")
  canCancelMembershipManual: Boolean! @deprecated(reason: "Moved to ManagedResource")
  subscription: Subscription @deprecated(reason: "Moved to ManagedResource")
  subscriptionPaymentInterval: PaymentIntervalEnum! @deprecated(reason: "Moved to ManagedResource")
  availableMemberships: [Membership!] @deprecated(reason: "Moved to ManagedResource")
  isAllowedToChangeMembership: Boolean! @deprecated(reason: "Moved to ManagedResource")
  isAllowedToPayByInvoice: Boolean! @deprecated(reason: "Moved to ManagedResource")
  isAllowedToPayBySepa: Boolean! @deprecated(reason: "Moved to ManagedResource")
  billingAddress: Address @deprecated(reason: "Moved to ManagedResource")
  billingEmail: String! @deprecated(reason: "Moved to ManagedResource")
  invoices(after: String, first: Int): InvoiceConnection @deprecated(reason: "Moved to ManagedResource")
  gdprExports(after: String, first: Int): GDPRExportConnection @deprecated(reason: "Moved to ManagedResource")
  visitedUsers(after: String, first: Int): UserConnection
  visitorUsers(after: String, first: Int): UserConnection
  likedUsers(after: String, first: Int): UserConnection
  managedSchoolClasses(after: String, first: Int): SchoolClassConnection
  isVisibleForCompaniesStatus: UserVisibleForCompaniesStatusEnum!
  isAllowedToParticipateInTrainings: Boolean!
  hostedEventsWithOpenConfirmations(after: String, first: Int): EventConnection
  apiKeys(after: String, first: Int): ApiKeyConnection @deprecated(reason: "Moved to ManagedResource")
  upcomingHostedEventFairs(after: String, first: Int): EventFairConnection
  historicHostedEventFairs(after: String, first: Int): EventFairConnection
  upcomingEventFairExhibitions(after: String, first: Int): EventFairConnection
  historicEventFairExhibitions(after: String, first: Int): EventFairConnection
  upcomingEventFairs(after: String, first: Int, orderBy: UpcomingEventFairsOrderByEnum! = distance): EventFairConnection
  upcomingParticipatingEventFairs(after: String, first: Int, orderBy: UpcomingEventFairsOrderByEnum! = startAt): EventFairConnection
  upcomingSchoolClassInternships(after: String, first: Int): SchoolClassInternshipConnection
  internshipSuggestions(searchQuery: String, professionalCategoryIds: [String!], distance: DistanceEnum = DISTANCE_50): InternshipSuggestions
}

"A connection to a list of items."
type NotificationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [NotificationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type NotificationEdge {
  "The item at the end of the edge."
  node: Notification!

  "A cursor for use in pagination."
  cursor: String!
}

type Notification implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  actor: Actor!
  activityId: String!
  isUnread: Boolean!
  isRead: Boolean!
  activityText: ActivityText!
  callToAction: CallToAction
}

type ActivityText {
  text(locale: LocaleEnum = null): String!
  template(locale: LocaleEnum = null): String!
  placeholders: [ActivityTextPlaceholder!]
}

type ActivityTextPlaceholder {
  keyWithDivider: String!
  key: String!
  value: String!
  entityType: String!
  entityId: String!
  deepLink: String
}

type CallToAction {
  deepLink: String!
  primaryActionType: String!
  primaryActionText: String!
  isPrimaryActionVisible: Boolean!
  isPrimaryActionDisabled: Boolean!
}

"A connection to a list of items."
type FeedItemConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [FeedItemEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type FeedItemEdge {
  "The item at the end of the edge."
  node: FeedItem!

  "A cursor for use in pagination."
  cursor: String!
}

type FeedItem implements EntityInterface & ActivityInterface {
  id: ID!
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  actor: Actor!
  activityId: String!
  content: FeedItemContent!
}

"A connection to a list of items."
type ChatConversationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ChatConversationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ChatConversationEdge {
  "The item at the end of the edge."
  node: ChatConversation!

  "A cursor for use in pagination."
  cursor: String!
}

type ChatConversation implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  membersKey: String!
  members: [ChatConversationMember!]
  lastMessage: ChatMessage
  lastMessageAt: DateTime
  unreadCount: Int!
  isArchived: Boolean!
  message(id: String!): ChatMessage
  messages(after: String, first: Int): ChatMessageConnection
}

type ChatConversationMember {
  id: ID
  entityType: String!
  isViewer: Boolean!
  deepLink: String!
  name: String!
  avatar: Image
}

type ChatMessage implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  type: String!
  message: String
  actor: ChatConversationMember!
  conversation: ChatConversation!
  position: Int
}

"A connection to a list of items."
type ChatMessageConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ChatMessageEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ChatMessageEdge {
  "The item at the end of the edge."
  node: ChatMessage!

  "A cursor for use in pagination."
  cursor: String!
}

type UnreadCount {
  notifications: Int!
  chat: Int!
  questions: Int!
  mainQuestions: Int!
}

"A connection to a list of items."
type StoryConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [StoryEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type StoryEdge {
  "The item at the end of the edge."
  node: Story!

  "A cursor for use in pagination."
  cursor: String!
}

type PaymentMethod {
  id: String!
  type: String!
  brand: String!
  last4: String!
  expiresMonth: Int
  expiresYear: Int
}

type Subscription {
  id: String!
  customer: Customer!
  status: SubscriptionStatusEnum!
  cancelAt: DateTime
  cancelAtPeriodEnd: Boolean!
  canceledAt: DateTime
  createdAt: DateTime!
  currentPeriodStartAt: DateTime!
  currentPeriodEndAt: DateTime!
  daysUntilDue: Int
  latestInvoice: Invoice!
}

type Customer {
  name: String!
  entityToken: String!
  address: Address!
  billingEmail: String!
  isAllowedToPayByInvoice: Boolean!
  primaryPaymentMethod: PaymentMethod
}

enum SubscriptionStatusEnum {
  active
  past_due
  unpaid
  canceled
  incomplete
  incomplete_expired
  trialing
}

type Invoice {
  number: String!
  status: String!
  hostedInvoiceUrl: String!
  total: Money!
  createdAt: DateTime
}

enum PaymentIntervalEnum {
  monthly
  annual
}

"A connection to a list of items."
type InvoiceConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [InvoiceEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type InvoiceEdge {
  "The item at the end of the edge."
  node: Invoice!

  "A cursor for use in pagination."
  cursor: String!
}

enum UserVisibleForCompaniesStatusEnum {
  OK
  OK_FOR_INTERNSHIP
  OK_FOR_TRAINING
  PROFILE_IS_DELETED
  PROFILE_IS_INCOMPLETE
  PARENT_INVITATION_REQUIRED
  DENIED_BY_PARENTHOOD
  DENIED_BY_USER_SETTINGS
  UNKNOWN
}

"A connection to a list of items."
type ApiKeyConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ApiKeyEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ApiKeyEdge {
  "The item at the end of the edge."
  node: ApiKey!

  "A cursor for use in pagination."
  cursor: String!
}

type ApiKey implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  email: String
  isIpWhitelistActive: Boolean!
  whitelistIps: [ApiKeyWhitelistIp!]
  requestLogs(after: String, first: Int): ApiKeyRequestLogConnection
}

type ApiKeyWhitelistIp implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  ip: String!
}

"A connection to a list of items."
type ApiKeyRequestLogConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ApiKeyRequestLogEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ApiKeyRequestLogEdge {
  "The item at the end of the edge."
  node: ApiKeyRequestLog!

  "A cursor for use in pagination."
  cursor: String!
}

type ApiKeyRequestLog implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  method: String!
  uri: String!
  query: String
  responseStatusCode: Int!
  responseTime: Int!
}

enum UpcomingEventFairsOrderByEnum {
  distance
  startAt
}

"This is your managed resource"
type ManagedResource implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  managerInvitations(after: String, first: Int): InvitationConnection
  managers(after: String, first: Int): ResourceManagerConnection
  isViewerOwner: Boolean!
  isViewerManager: Boolean!
  paymentMethod: PaymentMethod
}

"A connection to a list of items."
type InvitationConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [InvitationEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type InvitationEdge {
  "The item at the end of the edge."
  node: Invitation!

  "A cursor for use in pagination."
  cursor: String!
}

"A connection to a list of items."
type ResourceManagerConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [ResourceManagerEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type ResourceManagerEdge {
  "The item at the end of the edge."
  node: ResourceManager!

  "A cursor for use in pagination."
  cursor: String!
}

type ResourceManager implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  user: User!
  isOwner: Boolean!
  isViewer: Boolean!
}

type EventRating implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  event: Event!
  questionAnswers: [EventRatingQuestionAnswer!]
  isCompleted: Boolean!
}

type EventRatingQuestionAnswer implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  eventRating: EventRating!
  position: Int!
  questionType: EventRatingQuestionAnswerTypeEnum!
  questionText: String!
  isAnswered: Boolean!
  answerValue: Int
}

enum EventRatingQuestionAnswerTypeEnum {
  BOOLEAN
  RATING
}

type GooglePlace implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  street: String!
  streetNumber: String
  postalCode: String!
  city: String!
  district: String!
  state: String!
  country: String!
  isInDistrict(districtId: String!): Boolean!
}

type Mutation {
  achievementIsVisibleOnProfileMutation(input: AchievementIsVisibleOnProfileInput!): AchievementIsVisibleOnProfilePayload
  addressCreateMutation(input: AddressCreateInput!): AddressCreatePayload
  adminImpersonateUserMutation(input: AdminImpersonateUserInput!): AdminImpersonateUserPayload
  apiKeyArchiveMutation(input: ApiKeyArchiveInput!): ApiKeyArchivePayload
  associationCreateMutation(input: AssociationCreateMutationInput!): AssociationCreateMutationPayload
  associationManagerInvitationMutation(input: AssociationManagerInvitationMutationInput!): AssociationManagerInvitationMutationPayload
  companyActivityArchiveMutation(input: CompanyActivityArchiveInput!): CompanyActivityArchivePayload
  createRequestMutation(input: CreateRequestMutationInput!): CreateRequestMutationPayload
  deleteRequestMutation(input: DeleteRequestMutationInput!): DeleteRequestMutationPayload
  cancelRequestMutation(input: CancelRequestInput!): CancelRequestPayload
  rejectRequestMutation(input: RejectRequestInput!): RejectRequestPayload
  acceptRequestMutation(input: AcceptRequestInput!): AcceptRequestPayload
  apiKeyCreateMutation(input: ApiKeyCreateInput!): ApiKeyCreatePayload
  likeMutation(input: LikeMutationInput!): LikeMutationPayload
  associationManagerRemoveMutation(input: AssociationManagerRemoveMutationInput!): AssociationManagerRemoveMutationPayload
  unlikeMutation(input: UnlikeMutationInput!): UnlikeMutationPayload
  viewerArchiveChatConversationMutation(input: ViewerArchiveChatConversationInput!): ViewerArchiveChatConversationPayload
  viewerCreateChatTextMessageMutation(input: ViewerCreateChatTextMessageInput!): ViewerCreateChatTextMessagePayload
  viewerCreateSingleChatConversationMutation(input: ViewerCreateSingleChatConversationInput!): ViewerCreateSingleChatConversationPayload
  viewerMarkChatConversationAsReadMutation(input: ViewerMarkChatConversationAsReadMutationInput!): ViewerMarkChatConversationAsReadMutationPayload
  viewerRestoreChatConversationMutation(input: ViewerRestoreChatConversationInput!): ViewerRestoreChatConversationPayload
  companyAddressMutation(input: CompanyAddressInput!): CompanyAddressPayload
  companyApprenticeInviteMutation(input: CompanyApprenticeInviteInput!): CompanyApprenticeInvitePayload
  companyArchiveMutation(input: CompanyArchiveInput!): CompanyArchivePayload
  companyBenefitMutation(input: CompanyBenefitInput!): CompanyBenefitPayload
  companyChangeAvatarMutation(input: CompanyChangeAvatarInput!): CompanyChangeAvatarPayload
  companyChangeCoverMutation(input: CompanyChangeCoverInput!): CompanyChangeCoverPayload
  companyContactEmailMutation(input: CompanyContactEmailInput!): CompanyContactEmailPayload
  companyCreateMutation(input: CompanyCreateInput!): CompanyCreatePayload
  companyDescriptionMutation(input: CompanyDescriptionInput!): CompanyDescriptionPayload
  companyFoundingYearMutation(input: CompanyFoundingYearInput!): CompanyFoundingYearPayload
  companyHasBoardingCompletedMutation(input: CompanyHasBoardingCompletedInput!): CompanyHasBoardingCompletedPayload
  companyImageAddMutation(input: CompanyImageAddInput!): CompanyImageAddPayload
  companyImageRemoveMutation(input: CompanyImageRemoveInput!): CompanyImageRemovePayload
  companyImageUpdateMutation(input: CompanyImageUpdateInput!): CompanyImageUpdatePayload
  companyImageUpdateAllMutation(input: CompanyImageUpdateAllInput!): CompanyImageUpdateAllPayload
  companyIndustryMutation(input: CompanyIndustryInput!): CompanyIndustryPayload
  companyInternshipRequestAllowedMutation(input: CompanyInternshipRequestAllowedInput!): CompanyInternshipRequestAllowedPayload
  companyKlischeefreiMutation(input: CompanyKlischeefreiInput!): CompanyKlischeefreiPayload
  companyManagerInviteMutation(input: CompanyManagerInviteInput!): CompanyManagerInvitePayload
  companyManagerRemoveMutation(input: CompanyManagerRemoveInput!): CompanyManagerRemovePayload
  companyManagerTransferOwnershipMutation(input: CompanyManagerTransferOwnershipInput!): CompanyManagerTransferOwnershipPayload
  companyNameMutation(input: CompanyNameInput!): CompanyNamePayload
  companyPhoneNumberMutation(input: CompanyPhoneNumberInput!): CompanyPhoneNumberPayload
  companyPropertyAddMutation(input: CompanyPropertyAddInput!): CompanyPropertyAddPayload
  companyPropertyRemoveMutation(input: CompanyPropertyRemoveInput!): CompanyPropertyRemovePayload
  companySizeMutation(input: CompanySizeInput!): CompanySizePayload
  companySloganMutation(input: CompanySloganInput!): CompanySloganPayload
  companySocialMediaMutation(input: CompanySocialMediaInput!): CompanySocialMediaPayload
  companyStartVerificationMutation(input: CompanyStartVerificationMutationInput!): CompanyStartVerificationMutationPayload
  companyTrainingCreateMultipleMutation(input: CompanyTrainingCreateMultipleMutationInput!): CompanyTrainingCreateMultipleMutationPayload
  companyTrainingCreateMutation(input: CompanyTrainingCreateInput!): CompanyTrainingCreatePayload
  companyTrainingRemoveMutation(input: CompanyTrainingRemoveInput!): CompanyTrainingRemovePayload
  companyTypeMutation(input: CompanyTypeInput!): CompanyTypePayload
  companySubmitVerificationCodeMutation(input: CompanySubmitVerificationCodeMutationInput!): CompanySubmitVerificationCodeMutationPayload
  companyWebsiteMutation(input: CompanyWebsiteInput!): CompanyWebsitePayload
  districtAddressMutation(input: DistrictAddressInput!): DistrictAddressPayload
  districtChangeAvatarMutation(input: DistrictChangeAvatarInput!): DistrictChangeAvatarPayload
  districtChangeCoverMutation(input: DistrictChangeCoverInput!): DistrictChangeCoverPayload
  districtContactEmailMutation(input: DistrictContactEmailInput!): DistrictContactEmailPayload
  districtDescriptionMutation(input: DistrictDescriptionInput!): DistrictDescriptionPayload
  districtManagerInviteMutation(input: DistrictManagerInviteInput!): DistrictManagerInvitePayload
  districtManagerRemoveMutation(input: DistrictManagerRemoveInput!): DistrictManagerRemovePayload
  districtManagerTransferOwnershipMutation(input: DistrictManagerTransferOwnershipInput!): DistrictManagerTransferOwnershipPayload
  districtNameMutation(input: DistrictNameInput!): DistrictNamePayload
  districtPhoneNumberMutation(input: DistrictPhoneNumberInput!): DistrictPhoneNumberPayload
  districtWebsiteMutation(input: DistrictWebsiteInput!): DistrictWebsitePayload
  eventAddressMutation(input: EventAddressInput!): EventAddressPayload
  eventArchiveMutation(input: EventArchiveInput!): EventArchivePayload
  eventContactEmailMutation(input: EventContactEmailInput!): EventContactEmailPayload
  eventContactPersonMutation(input: EventContactPersonInput!): EventContactPersonPayload
  eventContactPhoneNumberMutation(input: EventContactPhoneNumberInput!): EventContactPhoneNumberPayload
  eventCoverMutation(input: EventCoverInput!): EventCoverPayload
  eventCustomQuestionsMutation(input: EventCustomQuestionsInput!): EventCustomQuestionsPayload
  eventDescriptionMutation(input: EventDescriptionInput!): EventDescriptionPayload
  eventInclusionMutation(input: EventInclusionInput!): EventInclusionPayload
  eventJoinMutation(input: EventJoinInput!): EventJoinPayload
  eventLeaveMutation(input: EventLeaveInput!): EventLeavePayload
  eventMaxNumberOfParticipantsMutation(input: EventMaxNumberOfParticipantsInput!): EventMaxNumberOfParticipantsPayload
  eventOccupationalGroupMutation(input: EventOccupationalGroupInput!): EventOccupationalGroupPayload
  eventParticipantConfirmMutation(input: EventParticipantConfirmInput!): EventParticipantConfirmPayload
  eventParticipantContactPersonMutation(input: EventParticipantContactPersonInput!): EventParticipantContactPersonPayload
  eventParticipantRemoveMutation(input: EventParticipantRemoveInput!): EventParticipantRemovePayload
  eventProcessDescriptionMutation(input: EventProcessDescriptionInput!): EventProcessDescriptionPayload
  eventTimeMutation(input: EventTimeInput!): EventTimePayload
  eventDescriptionsUpdateMutation(input: EventDescriptionsUpdateInput!): EventDescriptionsUpdatePayload
  eventTitleMutation(input: EventTitleInput!): EventTitlePayload
  eventFairAddressMutation(input: EventFairAddressInput!): EventFairAddressPayload
  eventFairCoverMutation(input: EventFairDetailsUpdateInput!): EventFairDetailsUpdatePayload
  eventDetailsUpdateMutation(input: EventDetailsUpdateInput!): EventDetailsUpdatePayload
  eventRatingQuestionAnswerMutation(input: EventRatingQuestionAnswerMutationInput!): EventRatingQuestionAnswerMutationPayload
  eventFairCreateMutation(input: EventFairCreateInput!): EventFairCreatePayload
  eventFairDayCreateMutation(input: EventFairDayCreateInput!): EventFairDayCreatePayload
  eventFairDayRemoveMutation(input: EventFairDayRemoveInput!): EventFairDayRemovePayload
  eventFairDayScheduleCreateMutation(input: EventFairDayScheduleCreateInput!): EventFairDayScheduleCreatePayload
  eventFairDescriptionMutation(input: EventFairDescriptionInput!): EventFairDescriptionPayload
  eventFairExhibitorBoothInformationMutation(input: EventFairExhibitorBoothInformationInput!): EventFairExhibitorBoothInformationPayload
  eventFairExhibitorCreateMutation(input: EventFairExhibitorCreateInput!): EventFairExhibitorCreatePayload
  contactRequestCreateByDistrictMutation(input: ContactRequestCreateByDistrictInput!): ContactRequestCreateByDistrictPayload
  eventFairExhibitorRemoveMutation(input: EventFairExhibitorRemoveInput!): EventFairExhibitorRemovePayload
  eventFairIsVisibleForUsersAtMutation(input: EventFairIsVisibleForUsersAtInput!): EventFairIsVisibleForUsersAtPayload
  eventFairTitleMutation(input: EventFairTitleInput!): EventFairTitlePayload
  feedbackCreateMutation(input: FeedbackCreateMutationInput!): FeedbackCreateMutationPayload
  reportCreateMutation(input: ReportCreateInput!): ReportCreatePayload
  fileDownloadTicketMutation(input: FileDownloadTicketMutationInput!): FileDownloadTicketMutationPayload
  imageUploadByUnsplashMutation(input: ImageUploadByUnsplashInput!): ImageUploadByUnsplashPayload
  imageUploadMutation(input: ImageUploadInput!): ImageUploadPayload
  occupationalExplorationChangeCoverMutation(input: OccupationalExplorationChangeCoverInput!): OccupationalExplorationChangeCoverPayload
  occupationalExplorationCreateMutation(input: OccupationalExplorationCreateInput!): OccupationalExplorationCreatePayload
  occupationalExplorationDayCreateMutation(input: OccupationalExplorationDayCreateInput!): OccupationalExplorationDayCreatePayload
  occupationalExplorationDayDeleteMutation(input: OccupationalExplorationDayDeleteInput!): OccupationalExplorationDayDeletePayload
  occupationalExplorationDayEventCreateMutation(input: OccupationalExplorationDayEventCreateInput!): OccupationalExplorationDayEventCreatePayload
  occupationalExplorationDayUpdateMutation(input: OccupationalExplorationDayUpdateInput!): OccupationalExplorationDayUpdatePayload
  viewerMarkNotificationsAsRead(input: ViewerMarkNotificationsAsReadInput!): ViewerMarkNotificationsAsReadPayload
  occupationalExplorationDescriptionMutation(input: OccupationalExplorationDescriptionInput!): OccupationalExplorationDescriptionPayload
  occupationalExplorationNumberOfEventsParticipatedByStudentMutation(input: OccupationalExplorationNumberOfEventsParticipatedByStudentInput!): OccupationalExplorationNumberOfEventsParticipatedByStudentPayload
  occupationalExplorationParticipationMustBeDifferentInOccupationalGroupsMutation(input: OccupationalExplorationParticipationMustBeDifferentInOccupationalGroupsInput!): OccupationalExplorationParticipationMustBeDifferentInOccupationalGroupsPayload
  occupationalExplorationVisibleForCompaniesAtMutation(input: OccupationalExplorationVisibleForCompaniesAtInput!): OccupationalExplorationVisibleForCompaniesAtPayload
  occupationalExplorationVisibleForStudentsAtMutation(input: OccupationalExplorationVisibleForStudentsAtInput!): OccupationalExplorationVisibleForStudentsAtPayload
  occupationalTrainingCreateMutation(input: OccupationalTrainingCreateInput!): OccupationalTrainingCreatePayload
  parenthoodCreateMutation(input: ParenthoodCreateMutationInput!): ParenthoodCreateMutationPayload
  parenthoodIsChildAllowedToParticipateInInternshipsMutation(input: ParenthoodIsChildAllowedToParticipateInInternshipsMutationInput!): ParenthoodIsChildAllowedToParticipateInInternshipsMutationPayload
  parenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutation(input: ParenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutationInput!): ParenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutationPayload
  parenthoodIsVisibleForCompaniesMutation(input: ParenthoodIsVisibleForCompaniesMutationInput!): ParenthoodIsVisibleForCompaniesMutationPayload
  parenthoodRemoveMutation(input: ParenthoodRemoveMutationInput!): ParenthoodRemoveMutationPayload
  parenthoodRequestGDPRExportMutation(input: ParenthoodRequestGDPRExportMutationInput!): ParenthoodRequestGDPRExportMutationPayload
  questionAnswerMutation(input: ViewerQuestionAnswerInput!): ViewerQuestionAnswerPayload
  schoolAddressMutation(input: SchoolAddressInput!): SchoolAddressPayload
  schoolChangeAvatarMutation(input: SchoolChangeAvatarInput!): SchoolChangeAvatarPayload
  schoolContactEmailMutation(input: SchoolContactEmailInput!): SchoolContactEmailPayload
  schoolCoverMutation(input: SchoolCoverInput!): SchoolCoverPayload
  schoolCreateMutation(input: SchoolCreateInput!): SchoolCreatePayload
  schoolDescriptionMutation(input: SchoolDescriptionInput!): SchoolDescriptionPayload
  schoolFacilityAddMutation(input: SchoolFacilityAddInput!): SchoolFacilityAddPayload
  schoolFacilityRemoveMutation(input: SchoolFacilityRemoveInput!): SchoolFacilityRemovePayload
  schoolFacilityStoryMutation(input: SchoolFacilityStoryInput!): SchoolFacilityStoryPayload
  schoolFoundingYearMutation(input: SchoolFoundingYearInput!): SchoolFoundingYearPayload
  schoolHasBoardingCompletedMutation(input: SchoolHasBoardingCompletedInput!): SchoolHasBoardingCompletedPayload
  schoolManagerInviteMutation(input: SchoolManagerInviteInput!): SchoolManagerInvitePayload
  schoolManagerRemoveMutation(input: SchoolManagerRemoveInput!): SchoolManagerRemovePayload
  schoolNameMutation(input: SchoolNameInput!): SchoolNamePayload
  schoolPhoneNumberMutation(input: SchoolPhoneNumberInput!): SchoolPhoneNumberPayload
  schoolSloganMutation(input: SchoolSloganInput!): SchoolSloganPayload
  schoolClassCreateMutation(input: SchoolClassCreateInput!): SchoolClassCreatePayload
  schoolWebsiteMutation(input: SchoolWebsiteInput!): SchoolWebsitePayload
  schoolClassIsQualifiedForOccupationalExplorationMutation(input: SchoolClassIsQualifiedForOccupationalExplorationInput!): SchoolClassIsQualifiedForOccupationalExplorationPayload
  contactRequestCreateByViewerMutation(input: ContactRequestCreateByViewerInput!): ContactRequestCreateByViewerPayload
  schoolClassManagerAddMutation(input: SchoolClassManagerAddInput!): SchoolClassManagerAddPayload
  schoolClassManagerRemoveMutation(input: SchoolClassManagerRemoveInput!): SchoolClassManagerRemovePayload
  schoolClassNameMutation(input: SchoolClassNameInput!): SchoolClassNamePayload
  schoolClassUpdateAllMutation(input: SchoolClassUpdateAllInput!): SchoolClassUpdateAllPayload
  schoolClassYearGroupMutation(input: SchoolClassYearGroupInput!): SchoolClassYearGroupPayload
  studentInvitationMutation(input: StudentInvitationInput!): StudentInvitationPayload
  studentJoinSchoolClassMutation(input: StudentJoinSchoolClassInput!): StudentJoinSchoolClassPayload
  storyCreateDraftMutation(input: StoryCreateDraftInput!): StoryCreateDraftPayload
  studentLeaveSchoolClassMutation(input: StudentLeaveSchoolClassInput!): StudentLeaveSchoolClassPayload
  storyCreateFeedItemMutation(input: StoryCreateFeedItemInput!): StoryCreateFeedItemPayload
  storyItemImageMutation(input: StoryItemImageInput!): StoryItemImagePayload
  storyItemTextMutation(input: StoryItemTextInput!): StoryItemTextPayload
  storyTitleUpdateMutation(input: StoryTitleUpdateInput!): StoryTitleUpdatePayload
  systemImportThemeMutation(input: SystemImportThemeInput!): SystemImportThemePayload
  userCreateMutation(input: UserCreateInput!): UserCreatePayload
  userResetPasswordMutation(input: UserResetPasswordInput!): UserResetPasswordPayload
  userResetPasswordSubmitMutation(input: UserResetPasswordSubmitInput!): UserResetPasswordSubmitPayload
  viewerArchiveMutation(input: ViewerArchiveInput!): ViewerArchivePayload
  viewerBillingInformationMutation(input: ViewerBillingInformationInput!): ViewerBillingInformationPayload
  viewerBirthdayMutation(input: ViewerBirthdayInput!): ViewerBirthdayPayload
  viewerCancelSubscriptionMutation(input: ViewerCancelSubscriptionInput!): ViewerCancelSubscriptionPayload
  viewerChangeAvatarMutation(input: ViewerChangeAvatarInput!): ViewerChangeAvatarPayload
  viewerAddOccupationalGroupInterestsMutation(input: ViewerAddOccupationalGroupInterestsInput!): ViewerAddOccupationalGroupInterestsPayload
  viewerChangeEmailMutation(input: ViewerChangeEmailInput!): ViewerChangeEmailPayload
  viewerAddFavoriteSchoolSubjectsMutation(input: ViewerAddFavoriteSchoolSubjectsInput!): ViewerAddFavoriteSchoolSubjectsPayload
  viewerChangeGenderMutation(input: ViewerChangeGenderInput!): ViewerChangeGenderPayload
  viewerChangeNameMutation(input: ViewerChangeNameInput!): ViewerChangeNamePayload
  viewerChangePasswordMutation(input: ViewerChangePasswordInput!): ViewerChangePasswordPayload
  viewerContinueSubscriptionMutation(input: ViewerContinueSubscriptionInput!): ViewerContinueSubscriptionPayload
  viewerExpoPushTokenMutation(input: ViewerExpoPushTokenInput!): ViewerExpoPushTokenPayload
  viewerGDPRExportMutation(input: ViewerGDPRExportInput!): ViewerGDPRExportPayload
  viewerRemoveFavoriteSchoolSubjectsMutation(input: ViewerRemoveFavoriteSchoolSubjectsInput!): ViewerRemoveFavoriteSchoolSubjectsPayload
  deleteInternshipMutation(input: DeleteInternshipMutationInput!): DeleteInternshipMutationPayload
  viewerGrantCompanyProfileReadPermissionsMutation(input: ViewerGrantCompanyProfileReadPermissionsMutationInput!): ViewerGrantCompanyProfileReadPermissionsMutationPayload
  viewerHasBoardingCompletedMutation(input: ViewerHasBoardingCompletedInput!): ViewerHasBoardingCompletedPayload
  viewerAddLanguageMutation(input: ViewerAddLanguageInput!): ViewerAddLanguagePayload
  viewerAddOccupationalFieldInterestsMutation(input: ViewerAddOccupationalFieldInterestsInput!): ViewerAddOccupationalFieldInterestsPayload
  viewerHometownMutation(input: ViewerHometownInput!): ViewerHometownPayload
  viewerIsAvailableForInternshipMutation(input: ViewerIsAvailableForInternshipMutationInput!): ViewerIsAvailableForInternshipMutationPayload
  viewerIsAvailableForTrainingMutation(input: ViewerIsAvailableForTrainingMutationInput!): ViewerIsAvailableForTrainingMutationPayload
  viewerMembershipMutation(input: ViewerMembershipInput!): ViewerMembershipPayload
  viewerNotificationSettingsMutation(input: ViewerNotificationSettingsInput!): ViewerNotificationSettingsPayload
  viewerRemoveLanguageMutation(input: ViewerRemoveLanguageInput!): ViewerRemoveLanguagePayload
  viewerRemoveOccupationalFieldInterestsMutation(input: ViewerRemoveOccupationalFieldInterestsInput!): ViewerRemoveOccupationalFieldInterestsPayload
  viewerRemoveOccupationalGroupInterestsMutation(input: ViewerRemoveOccupationalGroupInterestsInput!): ViewerRemoveOccupationalGroupInterestsPayload
  viewerPaymentMethodMutation(input: ViewerPaymentMethodInput!): ViewerPaymentMethodPayload
  viewerAddProfessionalTrainingsMutation(input: ViewerAddProfessionalTrainingsInput!): ViewerAddProfessionalTrainingsPayload
  viewerRemoveProfessionalTrainingsMutation(input: ViewerRemoveProfessionalTrainingsInput!): ViewerRemoveProfessionalTrainingsPayload
  viewerResendConfirmationEmailMutation(input: ViewerResendConfirmationEmailInput!): ViewerResendConfirmationEmailPayload
  viewerSchoolGraduationMutation(input: ViewerSchoolGraduationInput!): ViewerSchoolGraduationPayload
  viewerVisitMutation(input: ViewerVisitMutationInput!): ViewerVisitMutationPayload
  createInternshipMutation(input: CreateInternshipMutationInput!): CreateInternshipMutationPayload
}

input AchievementIsVisibleOnProfileInput {
  achievementId: String!
  isVisibleOnProfile: Boolean!
  clientMutationId: String
}

type AchievementIsVisibleOnProfilePayload {
  achievement: Achievement!
  clientMutationId: String
}

input AddressCreateInput {
  googlePlaceId: String
  name: String
  street: String!
  streetNumber: String!
  additional: String
  postalCode: String!
  city: String!
  state: String
  districtAdministration: String
  latitude: Float
  longitude: Float
  countryId: String!
  countryDistrictId: String
  clientMutationId: String
}

type AddressCreatePayload {
  address: Address!
  clientMutationId: String
}

input AdminImpersonateUserInput {
  toImpersonateUserId: String!
  clientMutationId: String
}

type AdminImpersonateUserPayload {
  token: String!
  clientMutationId: String
}

input ApiKeyArchiveInput {
  apiKeyId: String!
  clientMutationId: String
}

type ApiKeyArchivePayload {
  result: Boolean!
  clientMutationId: String
}

input AssociationCreateMutationInput {
  googlePlaceId: String!
  associationName: String!
  firstName: String!
  lastName: String!
  email: String!
  password: String!
  clientMutationId: String
}

type AssociationCreateMutationPayload {
  association: Association!
  clientMutationId: String
}

input AssociationManagerInvitationMutationInput {
  email: String!
  clientMutationId: String
}

type AssociationManagerInvitationMutationPayload {
  invitation: Invitation!
  association: Association!
  clientMutationId: String
}

input CompanyActivityArchiveInput {
  companyId: String!
  activityId: String!
  clientMutationId: String
}

type CompanyActivityArchivePayload {
  company: Company!
  activity: Activity!
  clientMutationId: String
}

input CreateRequestMutationInput {
  student: String!
  company: String!
  internship: String!
  rrule: String!
  requestMessage: String
  companyTrainingId: String!
  clientMutationId: String
}

type CreateRequestMutationPayload {
  request: Request!
  clientMutationId: String
}

input DeleteRequestMutationInput {
  id: String!
  clientMutationId: String
}

type DeleteRequestMutationPayload {
  student: User!
  clientMutationId: String
}

input CancelRequestInput {
  id: String!
  message: String
  clientMutationId: String
}

type CancelRequestPayload {
  request: Request!
  company: Company!
  clientMutationId: String
}

input RejectRequestInput {
  id: String!
  message: String
  clientMutationId: String
}

type RejectRequestPayload {
  request: Request!
  company: Company!
  clientMutationId: String
}

input AcceptRequestInput {
  id: String!
  message: String
  contactPerson: String!
  contactPhoneNumber: String!
  startTime: String = "08:00"
  endTime: String = "16:00"
  clientMutationId: String
}

type AcceptRequestPayload {
  booking: Booking!
  company: Company!
  clientMutationId: String
}

input ApiKeyCreateInput {
  name: String!
  email: String
  whitelistIps: [String!]
  clientMutationId: String
}

type ApiKeyCreatePayload {
  apiKey: ApiKey!
  token: String!
  clientMutationId: String
}

input LikeMutationInput {
  objectToken: String!
  clientMutationId: String
}

type LikeMutationPayload {
  result: Boolean!
  viewer: Viewer!
  clientMutationId: String
}

input AssociationManagerRemoveMutationInput {
  userId: String!
  clientMutationId: String
}

type AssociationManagerRemoveMutationPayload {
  association: Association!
  user: User!
  clientMutationId: String
}

input UnlikeMutationInput {
  objectToken: String!
  clientMutationId: String
}

type UnlikeMutationPayload {
  result: Boolean!
  viewer: Viewer!
  clientMutationId: String
}

input ViewerArchiveChatConversationInput {
  chatConversationId: String!
  clientMutationId: String
}

type ViewerArchiveChatConversationPayload {
  chatConversation: ChatConversation!
  clientMutationId: String
}

input ViewerCreateChatTextMessageInput {
  chatConversationId: String!
  message: String!
  clientMutationId: String
}

type ViewerCreateChatTextMessagePayload {
  chatMessage: ChatMessage!
  clientMutationId: String
}

input ViewerCreateSingleChatConversationInput {
  conversationMemberEntityId: String!
  conversationMemberEntityType: String!
  clientMutationId: String
}

type ViewerCreateSingleChatConversationPayload {
  chatConversation: ChatConversation!
  clientMutationId: String
}

input ViewerMarkChatConversationAsReadMutationInput {
  chatConversationId: String!
  clientMutationId: String
}

type ViewerMarkChatConversationAsReadMutationPayload {
  chatConversation: ChatConversation!
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRestoreChatConversationInput {
  chatConversationId: String!
  clientMutationId: String
}

type ViewerRestoreChatConversationPayload {
  chatConversation: ChatConversation!
  clientMutationId: String
}

input CompanyAddressInput {
  addressId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyAddressPayload {
  company: Company!
  clientMutationId: String
}

input CompanyApprenticeInviteInput {
  occupationalTrainingYearId: String!
  email: String!
  clientMutationId: String
}

type CompanyApprenticeInvitePayload {
  invitation: Invitation!
  company: Company!
  clientMutationId: String
}

input CompanyArchiveInput {
  companyOwnerPassword: String!
  companyId: String!
  clientMutationId: String
}

type CompanyArchivePayload {
  company: Company!
  viewer: Viewer!
  clientMutationId: String
}

input CompanyBenefitInput {
  companyPropertyId: String!
  companyId: String!
  storyId: String!
  clientMutationId: String
}

type CompanyBenefitPayload {
  company: Company!
  clientMutationId: String
}

input CompanyChangeAvatarInput {
  imageId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyChangeAvatarPayload {
  company: Company!
  clientMutationId: String
}

input CompanyChangeCoverInput {
  imageId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyChangeCoverPayload {
  company: Company!
  clientMutationId: String
}

input CompanyContactEmailInput {
  contactEmail: String
  companyId: String!
  clientMutationId: String
}

type CompanyContactEmailPayload {
  company: Company!
  clientMutationId: String
}

input CompanyCreateInput {
  districtId: String!
  companyName: String
  googlePlaceId: String!
  firstName: String!
  lastName: String!
  email: String!
  password: String!
  clientMutationId: String
}

type CompanyCreatePayload {
  authToken: String!
  company: Company!
  clientMutationId: String
}

input CompanyDescriptionInput {
  description: String
  companyId: String!
  clientMutationId: String
}

type CompanyDescriptionPayload {
  company: Company!
  clientMutationId: String
}

input CompanyFoundingYearInput {
  foundingYear: Int
  companyId: String!
  clientMutationId: String
}

type CompanyFoundingYearPayload {
  company: Company!
  clientMutationId: String
}

input CompanyHasBoardingCompletedInput {
  hasBoardingCompleted: Boolean!
  companyId: String!
  clientMutationId: String
}

type CompanyHasBoardingCompletedPayload {
  company: Company!
  clientMutationId: String
}

input CompanyImageAddInput {
  imageId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyImageAddPayload {
  company: Company!
  companyImage: CompanyImage!
  clientMutationId: String
}

input CompanyImageRemoveInput {
  companyImageId: String!
  clientMutationId: String
}

type CompanyImageRemovePayload {
  company: Company!
  companyImage: CompanyImage!
  clientMutationId: String
}

input CompanyImageUpdateInput {
  companyImageId: String!
  position: Int
  clientMutationId: String
}

type CompanyImageUpdatePayload {
  company: Company!
  companyImage: CompanyImage!
  clientMutationId: String
}

input CompanyImageUpdateAllInput {
  companyId: String!
  companyImages: [CompanyImageInput!]
  clientMutationId: String
}

input CompanyImageInput {
  id: String!
  position: Int!
}

type CompanyImageUpdateAllPayload {
  company: Company!
  images: CompanyImageConnection
  clientMutationId: String
}

input CompanyIndustryInput {
  companyIndustryId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyIndustryPayload {
  company: Company!
  clientMutationId: String
}

input CompanyInternshipRequestAllowedInput {
  isInternshipRequestAllowed: Boolean!
  companyId: String!
  clientMutationId: String
}

type CompanyInternshipRequestAllowedPayload {
  company: Company!
  clientMutationId: String
}

input CompanyKlischeefreiInput {
  isMemberOfKlischeefrei: Boolean!
  companyId: String!
  clientMutationId: String
}

type CompanyKlischeefreiPayload {
  company: Company!
  clientMutationId: String
}

input CompanyManagerInviteInput {
  email: String!
  clientMutationId: String
}

type CompanyManagerInvitePayload {
  invitation: Invitation!
  company: Company!
  clientMutationId: String
}

input CompanyManagerRemoveInput {
  userId: String!
  clientMutationId: String
}

type CompanyManagerRemovePayload {
  company: Company!
  user: User!
  clientMutationId: String
}

input CompanyManagerTransferOwnershipInput {
  userId: String!
  viewerPassword: String!
  clientMutationId: String
}

type CompanyManagerTransferOwnershipPayload {
  company: Company!
  clientMutationId: String
}

input CompanyNameInput {
  name: String!
  companyId: String!
  clientMutationId: String
}

type CompanyNamePayload {
  company: Company!
  clientMutationId: String
}

input CompanyPhoneNumberInput {
  phoneNumber: String
  companyId: String!
  clientMutationId: String
}

type CompanyPhoneNumberPayload {
  company: Company!
  clientMutationId: String
}

input CompanyPropertyAddInput {
  companyPropertyId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyPropertyAddPayload {
  company: Company!
  clientMutationId: String
}

input CompanyPropertyRemoveInput {
  companyPropertyId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyPropertyRemovePayload {
  company: Company!
  clientMutationId: String
}

input CompanySizeInput {
  companySizeId: String!
  companyId: String!
  clientMutationId: String
}

type CompanySizePayload {
  company: Company!
  clientMutationId: String
}

input CompanySloganInput {
  slogan: String
  companyId: String!
  clientMutationId: String
}

type CompanySloganPayload {
  company: Company!
  clientMutationId: String
}

input CompanySocialMediaInput {
  companyId: String!
  socialMediaLinkedInUrl: String
  socialMediaFacebookUrl: String
  socialMediaXingUrl: String
  socialMediaYoutubeUrl: String
  socialMediaInstagramUrl: String
  socialMediaTwitterUrl: String
  socialMediaTikTokUrl: String
  socialMediaSnapchatUrl: String
  clientMutationId: String
}

type CompanySocialMediaPayload {
  company: Company!
  clientMutationId: String
}

input CompanyStartVerificationMutationInput {
  companyId: String!
  clientMutationId: String
}

type CompanyStartVerificationMutationPayload {
  company: Company!
  clientMutationId: String
}

input CompanyTrainingCreateMultipleMutationInput {
  professionalTrainingIds: [String!]!
  companyId: String!
  clientMutationId: String
}

type CompanyTrainingCreateMultipleMutationPayload {
  company: Company
  clientMutationId: String
}

input CompanyTrainingCreateInput {
  professionalTrainingId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyTrainingCreatePayload {
  companyTraining: CompanyTraining!
  clientMutationId: String
}

input CompanyTrainingRemoveInput {
  companyTrainingId: String!
  clientMutationId: String
}

type CompanyTrainingRemovePayload {
  company: Company!
  clientMutationId: String
}

input CompanyTypeInput {
  companyTypeId: String!
  companyId: String!
  clientMutationId: String
}

type CompanyTypePayload {
  company: Company!
  clientMutationId: String
}

input CompanySubmitVerificationCodeMutationInput {
  companyId: String!
  code: String!
  clientMutationId: String
}

type CompanySubmitVerificationCodeMutationPayload {
  company: Company!
  result: VerificationSubmitResultEnum!
  clientMutationId: String
}

enum VerificationSubmitResultEnum {
  VERIFICATION_RETRY_LIMIT_REACHED
  VERIFICATION_INVALID_CODE
  VERIFICATION_SUCCESS
}

input CompanyWebsiteInput {
  website: String
  companyId: String!
  clientMutationId: String
}

type CompanyWebsitePayload {
  company: Company!
  clientMutationId: String
}

input DistrictAddressInput {
  addressId: String!
  districtId: String!
  clientMutationId: String
}

type DistrictAddressPayload {
  district: District!
  clientMutationId: String
}

input DistrictChangeAvatarInput {
  imageId: String!
  districtId: String!
  clientMutationId: String
}

type DistrictChangeAvatarPayload {
  district: District!
  clientMutationId: String
}

input DistrictChangeCoverInput {
  imageId: String!
  districtId: String!
  clientMutationId: String
}

type DistrictChangeCoverPayload {
  district: District!
  clientMutationId: String
}

input DistrictContactEmailInput {
  contactEmail: String
  districtId: String!
  clientMutationId: String
}

type DistrictContactEmailPayload {
  district: District!
  clientMutationId: String
}

input DistrictDescriptionInput {
  description: String
  districtId: String!
  clientMutationId: String
}

type DistrictDescriptionPayload {
  district: District!
  clientMutationId: String
}

input DistrictManagerInviteInput {
  email: String!
  clientMutationId: String
}

type DistrictManagerInvitePayload {
  invitation: Invitation!
  district: District!
  clientMutationId: String
}

input DistrictManagerRemoveInput {
  userId: String!
  clientMutationId: String
}

type DistrictManagerRemovePayload {
  district: District!
  user: User!
  clientMutationId: String
}

input DistrictManagerTransferOwnershipInput {
  userId: String!
  viewerPassword: String!
  clientMutationId: String
}

type DistrictManagerTransferOwnershipPayload {
  district: District!
  clientMutationId: String
}

input DistrictNameInput {
  name: String!
  districtId: String!
  clientMutationId: String
}

type DistrictNamePayload {
  district: District!
  clientMutationId: String
}

input DistrictPhoneNumberInput {
  phoneNumber: String
  districtId: String!
  clientMutationId: String
}

type DistrictPhoneNumberPayload {
  district: District!
  clientMutationId: String
}

input DistrictWebsiteInput {
  website: String
  districtId: String!
  clientMutationId: String
}

type DistrictWebsitePayload {
  district: District!
  clientMutationId: String
}

input EventAddressInput {
  eventId: String!
  addressId: String!
  clientMutationId: String
}

type EventAddressPayload {
  event: Event!
  clientMutationId: String
}

input EventArchiveInput {
  eventId: String!
  archiveReason: String!
  clientMutationId: String
}

type EventArchivePayload {
  event: Event!
  clientMutationId: String
}

input EventContactEmailInput {
  eventId: String!
  contactEmail: String!
  clientMutationId: String
}

type EventContactEmailPayload {
  event: Event!
  clientMutationId: String
}

input EventContactPersonInput {
  eventId: String!
  contactPerson: String!
  clientMutationId: String
}

type EventContactPersonPayload {
  event: Event!
  clientMutationId: String
}

input EventContactPhoneNumberInput {
  eventId: String!
  contactPhoneNumber: String!
  clientMutationId: String
}

type EventContactPhoneNumberPayload {
  event: Event!
  clientMutationId: String
}

input EventCoverInput {
  eventId: String!
  imageId: String!
  clientMutationId: String
}

type EventCoverPayload {
  event: Event!
  clientMutationId: String
}

input EventCustomQuestionsInput {
  eventId: String!
  customQuestions: [String!]
  clientMutationId: String
}

type EventCustomQuestionsPayload {
  event: Event!
  clientMutationId: String
}

input EventDescriptionInput {
  eventId: String!
  secondaryDescription: String!
  clientMutationId: String
}

type EventDescriptionPayload {
  event: Event!
  clientMutationId: String
}

input EventInclusionInput {
  eventId: String!
  isSuitableForPeopleWithMentalDisabilities: Boolean!
  isSuitableForPeopleWithWalkingDisabilities: Boolean!
  isSuitableForPeopleWithSpeechDisabilities: Boolean!
  isSuitableForPeopleWithLowVision: Boolean!
  isSuitableForPeopleWithHearingWeakness: Boolean!
  clientMutationId: String
}

type EventInclusionPayload {
  event: Event!
  clientMutationId: String
}

input EventJoinInput {
  eventId: String!
  questionsAnswers: [EventParticipationQuestionAnswerInput!]
  clientMutationId: String
}

input EventParticipationQuestionAnswerInput {
  id: String!
  answer: String!
}

type EventJoinPayload {
  eventParticipant: EventParticipant
  event: Event!
  viewer: Viewer!
  clientMutationId: String
}

input EventLeaveInput {
  eventId: String!
  clientMutationId: String
}

type EventLeavePayload {
  event: Event!
  viewer: Viewer!
  clientMutationId: String
}

input EventMaxNumberOfParticipantsInput {
  eventId: String!
  maxNumberOfParticipants: Int!
  clientMutationId: String
}

type EventMaxNumberOfParticipantsPayload {
  event: Event!
  clientMutationId: String
}

input EventOccupationalGroupInput {
  eventId: String!
  occupationalGroupId: String!
  clientMutationId: String
}

type EventOccupationalGroupPayload {
  event: Event!
  clientMutationId: String
}

input EventParticipantConfirmInput {
  eventParticipantId: String!
  eventParticipationConfirmationToken: String!
  status: EventParticipantStatusEnum!
  clientMutationId: String
}

type EventParticipantConfirmPayload {
  eventParticipant: EventParticipant
  error: EventParticipantConfirmMutationErrorEnum
  clientMutationId: String
}

enum EventParticipantConfirmMutationErrorEnum {
  ACCESS_DENIED
  INVALID_TOKEN
  INVALID_DAY
  ALREADY_CONFIRMED
}

input EventParticipantContactPersonInput {
  eventParticipantId: String!
  contactPerson: String
  clientMutationId: String
}

type EventParticipantContactPersonPayload {
  eventParticipant: EventParticipant
  clientMutationId: String
}

input EventParticipantRemoveInput {
  eventParticipantId: String!
  clientMutationId: String
}

type EventParticipantRemovePayload {
  event: Event!
  clientMutationId: String
}

input EventProcessDescriptionInput {
  eventId: String!
  processDescription: String!
  clientMutationId: String
}

type EventProcessDescriptionPayload {
  event: Event!
  clientMutationId: String
}

input EventTimeInput {
  eventId: String!
  startTime: String!
  endTime: String!
  clientMutationId: String
}

type EventTimePayload {
  event: Event!
  clientMutationId: String
}

input EventDescriptionsUpdateInput {
  eventId: String!
  processDescription: String!
  secondaryDescription: String!
  clientMutationId: String
}

type EventDescriptionsUpdatePayload {
  event: Event!
  clientMutationId: String
}

input EventTitleInput {
  eventId: String!
  title: String!
  clientMutationId: String
}

type EventTitlePayload {
  event: Event!
  clientMutationId: String
}

input EventFairAddressInput {
  eventFairId: String!
  addressId: String!
  clientMutationId: String
}

type EventFairAddressPayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairDetailsUpdateInput {
  eventFairId: String!
  imageId: String!
  title: String!
  visibleForUsersAt: DateTime!
  clientMutationId: String
}

type EventFairDetailsUpdatePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventDetailsUpdateInput {
  eventId: String!
  imageId: String!
  name: String
  occupationalGroupId: String!
  isSuitableForPeopleWithMentalDisabilities: Boolean!
  isSuitableForPeopleWithWalkingDisabilities: Boolean!
  isSuitableForPeopleWithSpeechDisabilities: Boolean!
  isSuitableForPeopleWithLowVision: Boolean!
  isSuitableForPeopleWithHearingWeakness: Boolean!
  contactPerson: String!
  contactPhoneNumber: String!
  startTime: String!
  endTime: String!
  maxNumberOfParticipants: Int!
  clientMutationId: String
}

type EventDetailsUpdatePayload {
  event: Event!
  clientMutationId: String
}

input EventRatingQuestionAnswerMutationInput {
  eventRatingQuestionAnswerId: String!
  answerValue: Int!
  clientMutationId: String
}

type EventRatingQuestionAnswerMutationPayload {
  eventRating: EventRating!
  eventRatingQuestionAnswer: EventRatingQuestionAnswer!
  clientMutationId: String
}

input EventFairCreateInput {
  addressId: String!
  name: String!
  isVisibleForUsersAt: DateTime!
  clientMutationId: String
}

type EventFairCreatePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairDayCreateInput {
  eventFairId: String!
  startAt: DateTime!
  endAt: DateTime!
  clientMutationId: String
}

type EventFairDayCreatePayload {
  eventFairDay: EventFairDay!
  clientMutationId: String
}

input EventFairDayRemoveInput {
  eventFairDayId: String!
  clientMutationId: String
}

type EventFairDayRemovePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairDayScheduleCreateInput {
  eventFairDayId: String!
  eventFairExhibitorId: String!
  intervalMinutes: Int!
  maxNumberOfParticipants: Int!
  customQuestions: [String!]
  clientMutationId: String
}

type EventFairDayScheduleCreatePayload {
  eventFairDay: EventFairDay!
  eventFairExhibitor: EventFairExhibitor!
  clientMutationId: String
}

input EventFairDescriptionInput {
  eventFairId: String!
  description: String
  clientMutationId: String
}

type EventFairDescriptionPayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairExhibitorBoothInformationInput {
  eventFairExhibitorId: String!
  boothInformation: String
  clientMutationId: String
}

type EventFairExhibitorBoothInformationPayload {
  eventFairExhibitor: EventFairExhibitor!
  clientMutationId: String
}

input EventFairExhibitorCreateInput {
  eventFairId: String!
  companyId: String!
  clientMutationId: String
}

type EventFairExhibitorCreatePayload {
  eventFairExhibitor: EventFairExhibitor!
  clientMutationId: String
}

input ContactRequestCreateByDistrictInput {
  districtId: String!
  name: String!
  accountType: String!
  email: String!
  message: String!
  clientMutationId: String
}

type ContactRequestCreateByDistrictPayload {
  result: Boolean!
  id: String!
  clientMutationId: String
}

input EventFairExhibitorRemoveInput {
  eventFairExhibitorId: String!
  clientMutationId: String
}

type EventFairExhibitorRemovePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairIsVisibleForUsersAtInput {
  eventFairId: String!
  isVisibleForUsersAt: DateTime!
  clientMutationId: String
}

type EventFairIsVisibleForUsersAtPayload {
  eventFair: EventFair!
  clientMutationId: String
}

input EventFairTitleInput {
  eventFairId: String!
  title: String!
  clientMutationId: String
}

type EventFairTitlePayload {
  eventFair: EventFair!
  clientMutationId: String
}

input FeedbackCreateMutationInput {
  feedbackReasonId: String!
  name: String = "Anonymer Benutzer"
  email: String!
  message: String!
  districtId: String
  schoolId: String
  clientMutationId: String
}

type FeedbackCreateMutationPayload {
  feedback: Feedback!
  clientMutationId: String
}

type Feedback implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String
  email: String!
  message: String
  reason: FeedbackReason!
  user: User
  district: District
  school: School
}

input ReportCreateInput {
  entityToken: String!
  reason: String!
  message: String
  clientMutationId: String
}

type ReportCreatePayload {
  result: Boolean!
  clientMutationId: String
}

input FileDownloadTicketMutationInput {
  fileId: String!
  clientMutationId: String
}

type FileDownloadTicketMutationPayload {
  fileDownloadTicket: FileDownloadTicket!
  clientMutationId: String
}

type FileDownloadTicket implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  downloadLink: String!
  isExpired: Boolean!
  isViewerAllowedToDownloadFile: Boolean!
}

input ImageUploadByUnsplashInput {
  unsplashImageId: String!
  clientMutationId: String
}

type ImageUploadByUnsplashPayload {
  image: Image!
  clientMutationId: String
}

input ImageUploadInput {
  files: [String]
  clientMutationId: String
}

type ImageUploadPayload {
  image: Image!
  clientMutationId: String
}

input OccupationalExplorationChangeCoverInput {
  imageId: String!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationChangeCoverPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationCreateInput {
  schoolYearId: String!
  numberOfEventsParticipatedByStudent: Int!
  participationMustBeDifferentInOccupationalGroups: Boolean!
  days: [String!]
  companyStartAt: DateTime
  studentStartAt: DateTime
  clientMutationId: String
}

type OccupationalExplorationCreatePayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationDayCreateInput {
  occupationalExplorationId: String!
  day: String!
  schoolIds: [String!]
  clientMutationId: String
}

type OccupationalExplorationDayCreatePayload {
  occupationalExplorationDay: OccupationalExplorationDay!
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationDayDeleteInput {
  occupationalExplorationDayId: String!
  clientMutationId: String
}

type OccupationalExplorationDayDeletePayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationDayEventCreateInput {
  explorationDays: [OccupationalExplorationDayEventCreateDayInput!]
  occupationalGroupId: String!
  addressId: String!
  description: String!
  processDescription: String!
  contactPerson: String!
  contactPhoneNumber: String!
  contactEmail: String!
  isSuitableForPeopleWithMentalDisabilities: Boolean!
  isSuitableForPeopleWithWalkingDisabilities: Boolean!
  isSuitableForPeopleWithSpeechDisabilities: Boolean!
  isSuitableForPeopleWithLowVision: Boolean!
  isSuitableForPeopleWithHearingWeakness: Boolean!
  customQuestions: [String!]
  imageId: String!
  title: String
  clientMutationId: String
}

input OccupationalExplorationDayEventCreateDayInput {
  id: String!
  startTime: String!
  endTime: String!
  participantCount: Int!
}

type OccupationalExplorationDayEventCreatePayload {
  events: [Event!]
  company: Company!
  viewer: Viewer!
  clientMutationId: String
}

input OccupationalExplorationDayUpdateInput {
  oldOccupationalExplorationDayId: String!
  newDay: String!
  schoolIds: [String!]
  clientMutationId: String
}

type OccupationalExplorationDayUpdatePayload {
  occupationalExplorationDay: OccupationalExplorationDay!
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input ViewerMarkNotificationsAsReadInput {
  markAsRead: Boolean
  clientMutationId: String
}

type ViewerMarkNotificationsAsReadPayload {
  viewer: Viewer!
  clientMutationId: String
}

input OccupationalExplorationDescriptionInput {
  description: String!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationDescriptionPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationNumberOfEventsParticipatedByStudentInput {
  numberOfEventsParticipatedByStudent: Int!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationNumberOfEventsParticipatedByStudentPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationParticipationMustBeDifferentInOccupationalGroupsInput {
  participationMustBeDifferentInOccupationalGroups: Boolean!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationParticipationMustBeDifferentInOccupationalGroupsPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationVisibleForCompaniesAtInput {
  isVisibleForCompaniesAt: DateTime!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationVisibleForCompaniesAtPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalExplorationVisibleForStudentsAtInput {
  isVisibleForStudentsAt: DateTime!
  occupationalExplorationId: String!
  clientMutationId: String
}

type OccupationalExplorationVisibleForStudentsAtPayload {
  occupationalExploration: OccupationalExploration!
  clientMutationId: String
}

input OccupationalTrainingCreateInput {
  professionalTrainingId: String!
  name: String!
  yearCount: Int!
  clientMutationId: String
}

type OccupationalTrainingCreatePayload {
  occupationalTraining: OccupationalTraining!
  clientMutationId: String
}

type OccupationalTraining implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  name: String!
  professionalTrainingId: String!
  ownerToken: String!
  ownerId: String!
  ownerType: String!
  years(after: String, first: Int): OccupationalTrainingConnection
  yearsCount: Int!
}

"A connection to a list of items."
type OccupationalTrainingConnection {
  "Information to aid in pagination."
  pageInfo: PageInfo!

  "Information to aid in pagination."
  edges: [OccupationalTrainingEdge]

  "TotalCount to aid in pagination."
  totalCount: Int!
}

"An edge in a connection."
type OccupationalTrainingEdge {
  "The item at the end of the edge."
  node: OccupationalTraining!

  "A cursor for use in pagination."
  cursor: String!
}

input ParenthoodCreateMutationInput {
  userId: String!
  email: String!
  firstName: String!
  lastName: String!
  clientMutationId: String
}

type ParenthoodCreateMutationPayload {
  parenthood: Parenthood!
  viewer: Viewer!
  user: User!
  clientMutationId: String
}

input ParenthoodIsChildAllowedToParticipateInInternshipsMutationInput {
  parenthoodId: String!
  userId: String
  isChildAllowedToParticipateInInternships: Boolean!
  comment: String
  clientMutationId: String
}

type ParenthoodIsChildAllowedToParticipateInInternshipsMutationPayload {
  parenthood: Parenthood!
  clientMutationId: String
}

input ParenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutationInput {
  parenthoodId: String!
  userId: String
  isChildAllowedToParticipateInOccupationalExplorationEvents: Boolean!
  comment: String
  clientMutationId: String
}

type ParenthoodIsChildAllowedToParticipateInOccupationalExplorationEventsMutationPayload {
  parenthood: Parenthood!
  clientMutationId: String
}

input ParenthoodIsVisibleForCompaniesMutationInput {
  parenthoodId: String!
  userId: String
  isVisibleForCompanies: Boolean!
  comment: String
  clientMutationId: String
}

type ParenthoodIsVisibleForCompaniesMutationPayload {
  parenthood: Parenthood!
  clientMutationId: String
}

input ParenthoodRemoveMutationInput {
  parenthoodId: String!
  clientMutationId: String
}

type ParenthoodRemoveMutationPayload {
  viewer: Viewer!
  user: User!
  clientMutationId: String
}

input ParenthoodRequestGDPRExportMutationInput {
  parenthoodId: String!
  clientMutationId: String
}

type ParenthoodRequestGDPRExportMutationPayload {
  parenthood: Parenthood!
  gdprExport: GDPRExport!
  clientMutationId: String
}

input ViewerQuestionAnswerInput {
  id: String!
  answer: Int!
  clientMutationId: String
}

type ViewerQuestionAnswerPayload {
  nextMainQuestion: Question
  nextQuestionForCategory: Question
  category: QuestionCategory!
  question: Question!
  viewer: Viewer!
  clientMutationId: String
}

input SchoolAddressInput {
  schoolId: String!
  addressId: String!
  clientMutationId: String
}

type SchoolAddressPayload {
  school: School!
  clientMutationId: String
}

input SchoolChangeAvatarInput {
  imageId: String!
  schoolId: String!
  clientMutationId: String
}

type SchoolChangeAvatarPayload {
  school: School!
  clientMutationId: String
}

input SchoolContactEmailInput {
  schoolId: String!
  contactEmail: String
  clientMutationId: String
}

type SchoolContactEmailPayload {
  school: School!
  clientMutationId: String
}

input SchoolCoverInput {
  schoolId: String!
  imageId: String!
  clientMutationId: String
}

type SchoolCoverPayload {
  school: School!
  clientMutationId: String
}

input SchoolCreateInput {
  districtId: String!
  googlePlaceId: String!
  schoolTypeId: String!
  clientMutationId: String
}

type SchoolCreatePayload {
  school: School!
  clientMutationId: String
}

input SchoolDescriptionInput {
  schoolId: String!
  description: String
  clientMutationId: String
}

type SchoolDescriptionPayload {
  school: School!
  clientMutationId: String
}

input SchoolFacilityAddInput {
  schoolFacilityId: String!
  schoolId: String!
  clientMutationId: String
}

type SchoolFacilityAddPayload {
  school: School!
  clientMutationId: String
}

input SchoolFacilityRemoveInput {
  schoolFacilityId: String!
  schoolId: String!
  clientMutationId: String
}

type SchoolFacilityRemovePayload {
  school: School!
  clientMutationId: String
}

input SchoolFacilityStoryInput {
  schoolFacilityId: String!
  schoolId: String!
  storyId: String!
  clientMutationId: String
}

type SchoolFacilityStoryPayload {
  school: School!
  clientMutationId: String
}

input SchoolFoundingYearInput {
  schoolId: String!
  foundingYear: Int
  clientMutationId: String
}

type SchoolFoundingYearPayload {
  school: School!
  clientMutationId: String
}

input SchoolHasBoardingCompletedInput {
  hasBoardingCompleted: Boolean!
  schoolId: String!
  clientMutationId: String
}

type SchoolHasBoardingCompletedPayload {
  school: School!
  clientMutationId: String
}

input SchoolManagerInviteInput {
  schoolId: String!
  email: String!
  clientMutationId: String
}

type SchoolManagerInvitePayload {
  invitation: Invitation!
  school: School!
  clientMutationId: String
}

input SchoolManagerRemoveInput {
  userId: String!
  schoolId: String!
  clientMutationId: String
}

type SchoolManagerRemovePayload {
  school: School!
  user: User!
  clientMutationId: String
}

input SchoolNameInput {
  schoolId: String!
  name: String
  clientMutationId: String
}

type SchoolNamePayload {
  school: School!
  clientMutationId: String
}

input SchoolPhoneNumberInput {
  schoolId: String!
  phoneNumber: String
  clientMutationId: String
}

type SchoolPhoneNumberPayload {
  school: School!
  clientMutationId: String
}

input SchoolSloganInput {
  schoolId: String!
  slogan: String
  clientMutationId: String
}

type SchoolSloganPayload {
  school: School!
  clientMutationId: String
}

input SchoolClassCreateInput {
  schoolId: String!
  schoolYearGroupId: String!
  name: String!
  primaryManagerUserId: String
  isQualifiedForOccupationalExploration: Boolean
  clientMutationId: String
}

type SchoolClassCreatePayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input SchoolWebsiteInput {
  schoolId: String!
  website: String
  clientMutationId: String
}

type SchoolWebsitePayload {
  school: School!
  clientMutationId: String
}

input SchoolClassIsQualifiedForOccupationalExplorationInput {
  schoolClassId: String!
  isQualifiedForOccupationalExploration: Boolean!
  clientMutationId: String
}

type SchoolClassIsQualifiedForOccupationalExplorationPayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input ContactRequestCreateByViewerInput {
  message: String!
  clientMutationId: String
}

type ContactRequestCreateByViewerPayload {
  result: Boolean!
  id: String!
  clientMutationId: String
}

input SchoolClassManagerAddInput {
  schoolClassId: String!
  userId: String!
  clientMutationId: String
}

type SchoolClassManagerAddPayload {
  schoolClass: SchoolClass!
  viewer: Viewer!
  clientMutationId: String
}

input SchoolClassManagerRemoveInput {
  schoolClassId: String!
  userId: String!
  clientMutationId: String
}

type SchoolClassManagerRemovePayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input SchoolClassNameInput {
  schoolClassId: String!
  name: String!
  clientMutationId: String
}

type SchoolClassNamePayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input SchoolClassUpdateAllInput {
  schoolClassId: String!
  schoolYearGroupId: String!
  name: String!
  schoolClassManagerUserIds: [String!]!
  clientMutationId: String
}

type SchoolClassUpdateAllPayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input SchoolClassYearGroupInput {
  schoolClassId: String!
  yearGroupId: String!
  clientMutationId: String
}

type SchoolClassYearGroupPayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input StudentInvitationInput {
  schoolClassId: String!
  email: String!
  clientMutationId: String
}

type StudentInvitationPayload {
  invitation: Invitation!
  schoolClass: SchoolClass!
  clientMutationId: String
}

input StudentJoinSchoolClassInput {
  invitationId: String!
  clientMutationId: String
}

type StudentJoinSchoolClassPayload {
  viewer: Viewer!
  clientMutationId: String
}

input StoryCreateDraftInput {
  imageId: String!
  context: StoryContextEnum!
  clientMutationId: String
}

type StoryCreateDraftPayload {
  story: Story!
  clientMutationId: String
}

input StudentLeaveSchoolClassInput {
  schoolClassId: String!
  userId: String!
  clientMutationId: String
}

type StudentLeaveSchoolClassPayload {
  schoolClass: SchoolClass!
  viewer: Viewer!
  clientMutationId: String
}

input StoryCreateFeedItemInput {
  storyId: String!
  clientMutationId: String
}

type StoryCreateFeedItemPayload {
  activityId: String!
  clientMutationId: String
}

input StoryItemImageInput {
  storyId: String!
  storyItemId: String!
  imageId: String!
  clientMutationId: String
}

type StoryItemImagePayload {
  storyItem: StoryItem!
  clientMutationId: String
}

input StoryItemTextInput {
  storyId: String!
  storyItemId: String!
  text: String!
  clientMutationId: String
}

type StoryItemTextPayload {
  storyItem: StoryItem!
  clientMutationId: String
}

input StoryTitleUpdateInput {
  storyId: String!
  title: String!
  clientMutationId: String
}

type StoryTitleUpdatePayload {
  story: Story!
  clientMutationId: String
}

input SystemImportThemeInput {
  result: String
  clientMutationId: String
}

type SystemImportThemePayload {
  system: System!
  clientMutationId: String
}

input UserCreateInput {
  districtId: String!
  invitationId: String
  firstName: String!
  lastName: String!
  email: String!
  password: String!
  clientMutationId: String
}

type UserCreatePayload {
  authToken: String!
  viewer: Viewer!
  clientMutationId: String
}

input UserResetPasswordInput {
  email: String!
  clientMutationId: String
}

type UserResetPasswordPayload {
  result: Boolean!
  clientMutationId: String
}

input UserResetPasswordSubmitInput {
  token: String!
  newPassword: String!
  clientMutationId: String
}

type UserResetPasswordSubmitPayload {
  result: Boolean!
  clientMutationId: String
}

input ViewerArchiveInput {
  password: String!
  clientMutationId: String
}

type ViewerArchivePayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerBillingInformationInput {
  billingAddressId: String
  billingEmail: String
  clientMutationId: String
}

type ViewerBillingInformationPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerBirthdayInput {
  birthday: Date!
  clientMutationId: String
}

scalar Date

type ViewerBirthdayPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerCancelSubscriptionInput {
  subscriptionId: String!
  clientMutationId: String
}

type ViewerCancelSubscriptionPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangeAvatarInput {
  imageId: String!
  clientMutationId: String
}

type ViewerChangeAvatarPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddOccupationalGroupInterestsInput {
  occupationalGroupIds: [String!]
  clientMutationId: String
}

type ViewerAddOccupationalGroupInterestsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangeEmailInput {
  newEmail: String!
  clientMutationId: String
}

type ViewerChangeEmailPayload {
  authToken: String!
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddFavoriteSchoolSubjectsInput {
  schoolSubjectIds: [String!]
  clientMutationId: String
}

type ViewerAddFavoriteSchoolSubjectsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangeGenderInput {
  gender: GenderEnum!
  clientMutationId: String
}

type ViewerChangeGenderPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangeNameInput {
  firstName: String!
  lastName: String!
  clientMutationId: String
}

type ViewerChangeNamePayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerChangePasswordInput {
  oldPassword: String!
  newPassword: String!
  clientMutationId: String
}

type ViewerChangePasswordPayload {
  result: Boolean!
  reason: PasswordChangeReasonEnum!
  clientMutationId: String
}

enum PasswordChangeReasonEnum {
  access_denied
  invalid_password
  email_address_needs_confirmation
  success
}

input ViewerContinueSubscriptionInput {
  subscriptionId: String!
  clientMutationId: String
}

type ViewerContinueSubscriptionPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerExpoPushTokenInput {
  districtId: String!
  expoToken: String!
  permissionStatus: String!
  clientMutationId: String
}

type ViewerExpoPushTokenPayload {
  expoPushToken: ExpoPushToken!
  clientMutationId: String
}

type ExpoPushToken implements EntityInterface {
  id: ID
  entityType: String!
  entityToken: String!
  createdAt: DateTime!
  updatedAt: DateTime!
  deepLink: String
  isDeleted: Boolean!
  token: String!
}

input ViewerGDPRExportInput {
  sendEmail: Boolean
  clientMutationId: String
}

type ViewerGDPRExportPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveFavoriteSchoolSubjectsInput {
  schoolSubjectIds: [String!]
  clientMutationId: String
}

type ViewerRemoveFavoriteSchoolSubjectsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input DeleteInternshipMutationInput {
  schoolClassInternshipId: String!
  clientMutationId: String
}

type DeleteInternshipMutationPayload {
  schoolClass: SchoolClass!
  clientMutationId: String
}

input ViewerGrantCompanyProfileReadPermissionsMutationInput {
  companyId: String!
  name: Boolean!
  avatar: Boolean!
  birthday: Boolean!
  schoolGraduation: Boolean = true
  gender: Boolean!
  clientMutationId: String
}

type ViewerGrantCompanyProfileReadPermissionsMutationPayload {
  company: Company!
  viewer: Viewer!
  clientMutationId: String
}

input ViewerHasBoardingCompletedInput {
  hasBoardingCompleted: Boolean!
  clientMutationId: String
}

type ViewerHasBoardingCompletedPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddLanguageInput {
  languageId: String!
  percent: Int!
  clientMutationId: String
}

type ViewerAddLanguagePayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddOccupationalFieldInterestsInput {
  occupationalFieldIds: [String!]
  clientMutationId: String
}

type ViewerAddOccupationalFieldInterestsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerHometownInput {
  googlePlaceId: String!
  clientMutationId: String
}

type ViewerHometownPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerIsAvailableForInternshipMutationInput {
  isAvailableForInternship: Boolean!
  clientMutationId: String
}

type ViewerIsAvailableForInternshipMutationPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerIsAvailableForTrainingMutationInput {
  isAvailableForTraining: Boolean!
  clientMutationId: String
}

type ViewerIsAvailableForTrainingMutationPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerMembershipInput {
  membershipId: String!
  paymentInterval: PaymentIntervalEnum!
  clientMutationId: String
}

type ViewerMembershipPayload {
  viewer: Viewer!
  subscription: Subscription!
  clientMutationId: String
}

input ViewerNotificationSettingsInput {
  isEmailNotificationEnabled: Boolean
  isMobileNotificationEnabled: Boolean
  clientMutationId: String
}

type ViewerNotificationSettingsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveLanguageInput {
  languageId: String!
  clientMutationId: String
}

type ViewerRemoveLanguagePayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveOccupationalFieldInterestsInput {
  occupationalFieldIds: [String!]
  clientMutationId: String
}

type ViewerRemoveOccupationalFieldInterestsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveOccupationalGroupInterestsInput {
  occupationalGroupIds: [String!]
  clientMutationId: String
}

type ViewerRemoveOccupationalGroupInterestsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerPaymentMethodInput {
  stripePaymentMethodId: String
  clientMutationId: String
}

type ViewerPaymentMethodPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerAddProfessionalTrainingsInput {
  professionalTrainingIds: [String!]
  section: ProfessionalTrainingSectionEnum!
  clientMutationId: String
}

enum ProfessionalTrainingSectionEnum {
  completed
  interests
  internships
}

type ViewerAddProfessionalTrainingsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerRemoveProfessionalTrainingsInput {
  professionalTrainingIds: [String!]
  section: ProfessionalTrainingSectionEnum!
  clientMutationId: String
}

type ViewerRemoveProfessionalTrainingsPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerResendConfirmationEmailInput {
  resendConfirmationEmail: Boolean!
  clientMutationId: String
}

type ViewerResendConfirmationEmailPayload {
  result: Boolean!
  clientMutationId: String
}

input ViewerSchoolGraduationInput {
  schoolGraduationId: String!
  clientMutationId: String
}

type ViewerSchoolGraduationPayload {
  viewer: Viewer!
  clientMutationId: String
}

input ViewerVisitMutationInput {
  targetToken: String!
  clientMutationId: String
}

type ViewerVisitMutationPayload {
  result: Boolean!
  viewer: Viewer!
  clientMutationId: String
}

input CreateInternshipMutationInput {
  schoolClassId: String!
  rrule: String!
  visibleForStudentsAt: DateTime!
  description: String
  clientMutationId: String
}

type CreateInternshipMutationPayload {
  internship: Internship!
  clientMutationId: String
}