import { getEnvConfig } from '../config' import { nexusSchemaPrisma } from 'nexus-plugin-prisma/schema' import * as path from 'path' import { makeSchema } from '@nexus/schema' import * as Locker from './Locker' import * as AccessKey from './AccessKey' import * as AccountStatement from './AccountStatement' import * as Ad from './Ad' import * as AdditionalService from './AdditionalService' import * as Addon from './Addon' import * as AddonItem from './AddonItem' import * as Address from './Address' import * as Amenity from './Amenity' import * as AmenityBookingOptions from './AmenityBookingOptions' import * as AmenityPaymentOption from './AmenityPaymentOption' import * as Auth from './Auth' import * as Booking from './Booking' import * as Building from './Building' import * as BusinessHours from './BusinessHours' import * as Car from './Car' import * as ChosenModel from './ChosenModel' import * as Comment from './Comment' import * as Condition from './Condition' import * as CondoManagerCompte from './CondoManagerCompte' import * as Contact from './Contact' import * as ContactPerson from './ContactPerson' import * as CreditCard from './CreditCard' import * as CustomField from './CustomField' import * as Event from './Event' import * as File from './File' import * as Folder from './Folder' import * as Invoice from './Invoice' import * as Issue from './Issue' import * as LineItem from './LineItem' import * as ManagerStoreItem from './ManagerStoreItem' import * as ManagerStoreOrder from './ManagerStoreOrder' import * as ManagerStoreOrderLineItem from './ManagerStoreOrderLineItem' import * as ManagingCompany from './ManagingCompany' import * as ManagingCompanyRole from './ManagingCompanyRole' import * as MappedService from './MappedService' import * as MappedServiceSettings from './MappedServiceSettings' import * as Mapping from './Mapping' import * as Meeting from './Meeting' import * as MeetingActivity from './MeetingActivity' import * as MeetingParticipant from './MeetingParticipant' import * as MeetingParticipantUnit from './MeetingParticipantUnit' import * as Note from './Note' import * as NoteComment from './NoteComment' import * as Notification from './Notification' import * as NotificationPreference from './NotificationPreference' import * as Offense from './Offense' import * as OffenseCategory from './OffenseCategory' import * as Option from './Option' import * as OptionCategory from './OptionCategory' import * as Order from './Order' import * as OrderSubscription from './OrderSubscription' import * as Package from './Package' import * as Parking from './Parking' import * as PaySafePayment from './PaySafePayment' import * as PaySafeRefund from './PaySafeRefund' import * as Payment from './Payment' import * as PaymentAccount from './PaymentAccount' import * as PaymentMethod from './PaymentMethod' import * as Phone from './Phone' import * as Picture from './Picture' import * as Poll from './Poll' import * as PollQuestion from './PollQuestion' import * as PollQuestionAnswer from './PollQuestionAnswer' import * as Post from './Post' import * as Project from './Project' import * as PromoCode from './PromoCode' import * as Property from './Property' import * as Reminder from './Reminder' import * as Remote from './Remote' import * as Reservation from './Reservation' import * as Review from './Review' import * as RoomModel from './RoomModel' import * as Rule from './Rule' import * as Segment from './Segment' import * as SegmentField from './SegmentField' import * as Sendbird from './Sendbird' import * as Service from './Service' import * as ServiceProject from './ServiceProject' import * as ServiceRequest from './ServiceRequest' import * as ServiceRequestCategory from './ServiceRequestCategory' import * as ServiceRequestPriority from './ServiceRequestPriority' import * as ShippingLine from './ShippingLine' import * as SyncStatus from './SyncStatus' import * as Task from './Task' import * as TaskActivity from './TaskActivity' import * as TaskCategory from './TaskCategory' import * as TaskStatus from './TaskStatus' import * as Tax from './Tax' import * as ThirdPartyVersion from './ThirdPartyVersion' import * as UnitRoom from './UnitRoom' import * as User from './User' import * as FaqItem from './faqItem' export default makeSchema({ types: [ Locker, AccessKey, AccountStatement, Ad, AdditionalService, Addon, AddonItem, Address, Amenity, AmenityBookingOptions, AmenityPaymentOption, Auth, Booking, Building, BusinessHours, Car, ChosenModel, Comment, Condition, CondoManagerCompte, Contact, ContactPerson, CreditCard, CustomField, Event, File, FaqItem, Folder, Invoice, Issue, LineItem, ManagerStoreItem, ManagerStoreOrder, ManagerStoreOrderLineItem, ManagingCompany, ManagingCompanyRole, MappedService, MappedServiceSettings, Mapping, Meeting, MeetingActivity, MeetingParticipant, MeetingParticipantUnit, Note, NoteComment, Notification, NotificationPreference, Offense, OffenseCategory, Option, OptionCategory, Order, OrderSubscription, Package, Parking, PaySafePayment, PaySafeRefund, Payment, PaymentAccount, PaymentMethod, Phone, Picture, Poll, PollQuestion, PollQuestionAnswer, Post, Project, PromoCode, Property, Reminder, Remote, Reservation, Review, RoomModel, Rule, Segment, SegmentField, Sendbird, Service, ServiceProject, ServiceRequest, ServiceRequestCategory, ServiceRequestPriority, ShippingLine, SyncStatus, Task, TaskActivity, TaskCategory, TaskStatus, Tax, ThirdPartyVersion, UnitRoom, User, ], plugins: [ nexusSchemaPrisma({ experimentalCRUD: true, // Not sure what this does... // shouldGenerateArtifacts: true }), ], outputs: { schema: path.join(getEnvConfig().root, './generated/schema.graphql'), // Nexus put it in node_modules/@types by default. Not sure why we would want it in ./generated/nexus.ts typegen: path.join(getEnvConfig().root, './generated/nexus.ts'), }, typegenAutoConfig: { sources: [ { source: 'nexus-plugin-prisma/client', alias: 'client', }, { source: require.resolve('./context'), alias: 'Context', }, ], contextType: 'Context.Context', }, nonNullDefaults: { input: false, output: false, }, })