text: export default {
    associatedMedia: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "associatedMedia",
    },
    funder: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "funder",
    },
    sponsor: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "sponsor",
    },
    audio: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "audio",
    },
    provider: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "provider",
    },
    encoding: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "encoding",
    },
    interactivityType: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "interactivityType",
    },
    character: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "character",
    },
    audience: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "audience",
    },
    sourceOrganization: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "sourceOrganization",
    },
    isPartOf: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "isPartOf",
    },
    video: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "video",
    },
    publication: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "publication",
    },
    text: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "text",
    },
    expires: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "expires",
    },
    contributor: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "contributor",
    },
    typicalAgeRange: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "typicalAgeRange",
    },
    position: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "position",
    },
    releasedEvent: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "releasedEvent",
    },
    educationalUse: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "educationalUse",
    },
    contentLocation: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "contentLocation",
    },
    schemaVersion: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "schemaVersion",
    },
    accessibilityFeature: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "accessibilityFeature",
    },
    aggregateRating: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "aggregateRating",
    },
    locationCreated: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "locationCreated",
    },
    accessModeSufficient: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "accessModeSufficient",
    },
    temporalCoverage: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "temporalCoverage",
    },
    accountablePerson: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "accountablePerson",
    },
    spatialCoverage: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "spatialCoverage",
    },
    reviews: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "reviews",
    },
    offers: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "offers",
    },
    editor: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "editor",
    },
    discussionUrl: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "discussionUrl",
    },
    award: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "award",
    },
    copyrightHolder: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "copyrightHolder",
    },
    accessibilityHazard: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "accessibilityHazard",
    },
    copyrightYear: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "copyrightYear",
    },
    awards: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "awards",
    },
    recordedAt: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "recordedAt",
    },
    commentCount: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "commentCount",
    },
    fileFormat: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "fileFormat",
    },
    inLanguage: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "inLanguage",
    },
    accessibilityAPI: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "accessibilityAPI",
    },
    publisher: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "publisher",
    },
    interactionStatistic: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "interactionStatistic",
    },
    contentRating: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "contentRating",
    },
    learningResourceType: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "learningResourceType",
    },
    accessMode: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "accessMode",
    },
    material: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "material",
    },
    isFamilyFriendly: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "isFamilyFriendly",
    },
    exampleOfWork: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "exampleOfWork",
    },
    version: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "version",
    },
    dateModified: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "dateModified",
    },
    keywords: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "keywords",
    },
    genre: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "genre",
    },
    mainEntity: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "mainEntity",
    },
    author: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "author",
    },
    encodings: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "encodings",
    },
    isBasedOnUrl: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "isBasedOnUrl",
    },
    timeRequired: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "timeRequired",
    },
    translator: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "translator",
    },
    thumbnailUrl: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "thumbnailUrl",
    },
    hasPart: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "hasPart",
    },
    comment: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "comment",
    },
    encodingFormat: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "encodingFormat",
    },
    review: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "review",
    },
    license: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "license",
    },
    accessibilityControl: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "accessibilityControl",
    },
    isBasedOn: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "isBasedOn",
    },
    creator: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "creator",
    },
    publishingPrinciples: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "publishingPrinciples",
    },
    producer: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "producer",
    },
    mentions: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "mentions",
    },
    workExample: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "workExample",
    },
    dateCreated: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "dateCreated",
    },
    datePublished: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "datePublished",
    },
    isAccessibleForFree: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "isAccessibleForFree",
    },
    alternativeHeadline: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "alternativeHeadline",
    },
    headline: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "headline",
    },
    citation: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "citation",
    },
    pageEnd: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "pageEnd",
    },
    articleSection: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "articleSection",
    },
    pageStart: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "pageStart",
    },
    articleBody: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "articleBody",
    },
    sharedContent: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "sharedContent",
    },
    coverageEndTime: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "coverageEndTime",
    },
    liveBlogUpdate: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      label: "liveBlogUpdate",
    },
    _id: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      optional: true,
    },
    createdAt: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: Date,
      optional: true,
      viewableBy: ["guests"],
      onInsert: (document, context) => {
        return new Date()
      },
    },
    userId: {
      viewableBy: ["guests"],
      editableBy: ["guests"],
      insertableBy: ["guests"],
      type: String,
      optional: true,
      resolveAs: {
        fieldName: "user",
        type: "User",
        resolver: (movie, args, context) => {
          return context.Users.findOne(
            { _id: movie.userId },
            {
              fields: context.Users.getViewableFields(
                context.currentUser,
                context.Users
              ),
            }
          )
        },
        optional: true,
      },
    },
  }
  