prisma / prisma1

💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated]
https://v1.prisma.io/docs/
Apache License 2.0
16.55k stars 863 forks source link

`graphcool deploy` failing for large example #1498

Closed sorenbs closed 6 years ago

sorenbs commented 6 years ago

Steps to reproduce:

  1. deploy large example
  2. make a simple change
  3. observe error

1: large example

type User {
  id: ID! @unique
  createdAt: DateTime!
  updatedAt: DateTime!
  firstName: String!
  lastName: String!
  email: String! @unique
  password: String!
  phone: String!
  responseRate: Float
  responseTime: Int

  isSuperHost: Boolean! @default(value: "false")
  sentMessages: [Message!]! @relation(name: "SentMessages")
  receivedMessages: [Message!]! @relation(name: "ReceivedMessages")
}

type Place {
  id: ID! @unique
  name: String
  size: PLACE_SIZES
  shortDescription: String!
  description: String!
  slug: String!
  maxGuests: Int!
  numBedrooms: Int!
  numBeds: Int!
  numBaths: Int!
  reviews: [Review!]! @relation(name: "PlaceReviews")
  amenities: Amenities! @relation(name: "PlaceAmenities")
  host: User!
  pricing: Pricing! @relation(name: "PlacePrice")
  location: Location! @relation(name: "PlaceLocation")
  views: Views! @relation(name: "PlaceViews")
  guestRequirements: GuestRequirements @relation(name: "PlaceGuestRequirements")
  policies: Policies @relation(name: "PlacePolicies")
  houseRules: HouseRules @relation(name: "PlaceHouseRules")
  bookings: [Booking!]! @relation(name: "PlaceBooking")
  pictures: [Picture!]! @relation(name: "PlacePictures")
  popularity: Int!
}

type Pricing {
  id: ID! @unique
  place: Place! @relation(name: "PlacePrice")
  monthlyDiscount: Int
  weeklyDiscount: Int
  perNight: Int!
  smartPricing: Boolean! @default(value: "false")
  basePrice: Int!
  averageWeekly: Int!
  averageMonthly: Int!
  cleaningFee: Int
  securityDeposit: Int
  extraGuests: Int
  weekendPricing: Int
  currency: CURRENCY
}

type GuestRequirements {
  id: ID! @unique
  govIssuedId: Boolean! @default(value: "false")
  recommendationsFromOtherHosts: Boolean! @default(value: "false")
  guestTripInformation: Boolean! @default(value: "false")
  place: Place! @relation(name: "PlaceGuestRequirements")
}

type Policies {
  id: ID! @unique
  createdAt: DateTime!
  updatedAt: DateTime!
  checkInStartTime: Float!
  checkInEndTime: Float!
  checkoutTime: Float!
  place: Place! @relation(name: "PlacePolicies")
}

type HouseRules {
  id: ID! @unique
  createdAt: DateTime!
  updatedAt: DateTime!
  suitableForChildren: Boolean
  suitableForInfants: Boolean
  petsAllowed: Boolean
  smokingAllowed: Boolean
  partiesAndEventsAllowed: Boolean
  additionalRules: String
  place: Place! @relation(name: "PlaceHouseRules")
}

type Views {
  id: ID! @unique
  lastWeek: Int!
  place: Place! @relation(name: "PlaceViews")
}

type Location {
  id: ID! @unique
  lat: Float!
  lng: Float!
  neighbourHood: Neighbourhood @relation(name: "NeighbourhoodLocation")
  user: User
  place: Place @relation(name: "PlaceLocation")
  address: String
  directions: String
  experience: Experience @relation(name: "ExperienceLocation")
  restaurant: Restaurant
}

type Neighbourhood {
  id: ID! @unique
  locations: [Location!]! @relation(name: "NeighbourhoodLocation")
  name: String!
  slug: String!
  homePreview: Picture @relation(name: "HomePreview")
  city: City! @relation(name: "CityNeighbourhood")
  featured: Boolean!
  popularity: Int!
}

type City {
  id: ID! @unique
  name: String!
  neighbourhoods: [Neighbourhood!]! @relation(name: "CityNeighbourhood")
}

# later with @file directive
type Picture {
  id: ID! @unique
  url: String!
  neighbourHood: Neighbourhood @relation(name: "HomePreview")
  user: User
  experience: Experience @relation(name: "ExperiencePreview")
  place: Place @relation(name: "PlacePictures")
  reservation: Restaurant
  # url(width: Int height: Int): String!
}

type Experience {
  id: ID! @unique
  category: ExperienceCategory @relation(name: "ExperienceCategories")
  title: String!
  host: User!
  location: Location! @relation(name: "ExperienceLocation")
  pricePerPerson: Int!
  reviews: [Review!]! @relation(name: "ExperienceReviews")
  preview: Picture! @relation(name: "ExperiencePreview")
  popularity: Int!
}

type ExperienceCategory {
  id: ID! @unique
  mainColor: String! @default(value: "#123456")
  name: String!
  experience: Experience @relation(name: "ExperienceCategories")
}

type Amenities {
  id: ID! @unique
  place: Place! @relation(name: "PlaceAmenities")
  elevator: Boolean! @default(value: "false")
  petsAllowed: Boolean! @default(value: "false")
  internet: Boolean! @default(value: "false")
  kitchen: Boolean! @default(value: "false")
  wirelessInternet: Boolean! @default(value: "false")
  familyKidFriendly: Boolean! @default(value: "false")
  freeParkingOnPremises: Boolean! @default(value: "false")
  hotTub: Boolean! @default(value: "false")
  pool: Boolean! @default(value: "false")
  smokingAllowed: Boolean! @default(value: "false")
  wheelchairAccessible: Boolean! @default(value: "false")
  breakfast: Boolean! @default(value: "false")
  cableTv: Boolean! @default(value: "false")
  suitableForEvents: Boolean! @default(value: "false")
  dryer: Boolean! @default(value: "false")
  washer: Boolean! @default(value: "false")
  indoorFireplace: Boolean! @default(value: "false")
  tv: Boolean! @default(value: "false")
  heating: Boolean! @default(value: "false")
  hangers: Boolean! @default(value: "false")
  iron: Boolean! @default(value: "false")
  hairDryer: Boolean! @default(value: "false")
  doorman: Boolean! @default(value: "false")
  paidParkingOffPremises: Boolean! @default(value: "false")
  freeParkingOnStreet: Boolean! @default(value: "false")
  gym: Boolean! @default(value: "false")
  airConditioning: Boolean! @default(value: "false")
  shampoo: Boolean! @default(value: "false")
  essentials: Boolean! @default(value: "false")
  laptopFriendlyWorkspace: Boolean! @default(value: "false")
  privateEntrance: Boolean! @default(value: "false")
  buzzerWirelessIntercom: Boolean! @default(value: "false")
  babyBath: Boolean! @default(value: "false")
  babyMonitor: Boolean! @default(value: "false")
  babysitterRecommendations: Boolean! @default(value: "false")
  bathtub: Boolean! @default(value: "false")
  changingTable: Boolean! @default(value: "false")
  childrensBooksAndToys: Boolean! @default(value: "false")
  childrensDinnerware: Boolean! @default(value: "false")
  crib: Boolean! @default(value: "false")
}

type Review {
  id: ID! @unique
  createdAt: DateTime!
  text: String!
  stars: Int!
  accuracy: Int!
  location: Int!
  checkIn: Int!
  value: Int!
  cleanliness: Int!
  communication: Int!
  place: Place! @relation(name: "PlaceReviews")
  experience: Experience @relation(name: "ExperienceReviews")
}

type Booking {
  id: ID! @unique
  createdAt: DateTime!
  bookee: User! @relation(name: "Bookee")
  place: Place! @relation(name: "PlaceBooking")
  startDate: DateTime!
  endDate: DateTime!
  payment: Payment! @relation(name: "BookingPayment")
}

type Payment {
  id: ID! @unique
  createdAt: DateTime!
  serviceFee: Float!
  placePrice: Float!
  totalPrice: Float!
  booking: Booking! @relation(name: "BookingPayment")
  paymentMethod: PaymentAccount! @relation(name: "PaymentAccounts")
}

type PaymentAccount {
  id: ID! @unique
  createdAt: DateTime!
  type: PAYMENT_PROVIDER
  user: User!
  payments: [Payment!]! @relation(name: "PaymentAccounts")
  paypal: PaypalInformation @relation(name: "AccountPaypalInformation")
  creditcard: CreditCardInformation
    @relation(name: "AccountCreditCardInformation")
}

type PaypalInformation {
  id: ID! @unique
  createdAt: DateTime!
  email: String!
  paymentAccount: PaymentAccount! @relation(name: "AccountPaypalInformation")
}

type CreditCardInformation {
  id: ID! @unique
  createdAt: DateTime!
  cardNumber: String!
  expiresOnMonth: Int!
  expiresOnYear: Int!
  securityCode: String!
  firstName: String!
  lastName: String!
  postalCode: String!
  country: String!
  paymentAccount: PaymentAccount @relation(name: "AccountCreditCardInformation")
}

type Message {
  id: ID! @unique
  createdAt: DateTime!
  from: User! @relation(name: "SentMessages")
  to: User! @relation(name: "ReceivedMessages")
  deliveredAt: DateTime!
  readAt: DateTime!
}

type Notification {
  id: ID! @unique
  createdAt: DateTime!
  type: NOTIFICATION_TYPE
  user: User!
  link: String!
  readDate: DateTime!
}

type Restaurant {
  id: ID! @unique
  createdAt: DateTime!
  title: String!
  avgPricePerPerson: Int!
  pictures: [Picture!]!
  location: Location!
  isCurated: Boolean! @default(value: "true")
  slug: String!
  popularity: Int!
}

2: small change

remove Location.address

type User {
  id: ID! @unique
  createdAt: DateTime!
  updatedAt: DateTime!
  firstName: String!
  lastName: String!
  email: String! @unique
  password: String!
  phone: String!
  responseRate: Float
  responseTime: Int

  isSuperHost: Boolean! @default(value: "false")
  sentMessages: [Message!]! @relation(name: "SentMessages")
  receivedMessages: [Message!]! @relation(name: "ReceivedMessages")
}

type Place {
  id: ID! @unique
  name: String
  size: PLACE_SIZES
  shortDescription: String!
  description: String!
  slug: String!
  maxGuests: Int!
  numBedrooms: Int!
  numBeds: Int!
  numBaths: Int!
  reviews: [Review!]! @relation(name: "PlaceReviews")
  amenities: Amenities! @relation(name: "PlaceAmenities")
  host: User!
  pricing: Pricing! @relation(name: "PlacePrice")
  location: Location! @relation(name: "PlaceLocation")
  views: Views! @relation(name: "PlaceViews")
  guestRequirements: GuestRequirements @relation(name: "PlaceGuestRequirements")
  policies: Policies @relation(name: "PlacePolicies")
  houseRules: HouseRules @relation(name: "PlaceHouseRules")
  bookings: [Booking!]! @relation(name: "PlaceBooking")
  pictures: [Picture!]! @relation(name: "PlacePictures")
  popularity: Int!
}

type Pricing {
  id: ID! @unique
  place: Place! @relation(name: "PlacePrice")
  monthlyDiscount: Int
  weeklyDiscount: Int
  perNight: Int!
  smartPricing: Boolean! @default(value: "false")
  basePrice: Int!
  averageWeekly: Int!
  averageMonthly: Int!
  cleaningFee: Int
  securityDeposit: Int
  extraGuests: Int
  weekendPricing: Int
  currency: CURRENCY
}

type GuestRequirements {
  id: ID! @unique
  govIssuedId: Boolean! @default(value: "false")
  recommendationsFromOtherHosts: Boolean! @default(value: "false")
  guestTripInformation: Boolean! @default(value: "false")
  place: Place! @relation(name: "PlaceGuestRequirements")
}

type Policies {
  id: ID! @unique
  createdAt: DateTime!
  updatedAt: DateTime!
  checkInStartTime: Float!
  checkInEndTime: Float!
  checkoutTime: Float!
  place: Place! @relation(name: "PlacePolicies")
}

type HouseRules {
  id: ID! @unique
  createdAt: DateTime!
  updatedAt: DateTime!
  suitableForChildren: Boolean
  suitableForInfants: Boolean
  petsAllowed: Boolean
  smokingAllowed: Boolean
  partiesAndEventsAllowed: Boolean
  additionalRules: String
  place: Place! @relation(name: "PlaceHouseRules")
}

type Views {
  id: ID! @unique
  lastWeek: Int!
  place: Place! @relation(name: "PlaceViews")
}

type Location {
  id: ID! @unique
  lat: Float!
  lng: Float!
  neighbourHood: Neighbourhood @relation(name: "NeighbourhoodLocation")
  user: User
  place: Place @relation(name: "PlaceLocation")
#  address: String
  directions: String
  experience: Experience @relation(name: "ExperienceLocation")
  restaurant: Restaurant
}

type Neighbourhood {
  id: ID! @unique
  locations: [Location!]! @relation(name: "NeighbourhoodLocation")
  name: String!
  slug: String!
  homePreview: Picture @relation(name: "HomePreview")
  city: City! @relation(name: "CityNeighbourhood")
  featured: Boolean!
  popularity: Int!
}

type City {
  id: ID! @unique
  name: String!
  neighbourhoods: [Neighbourhood!]! @relation(name: "CityNeighbourhood")
}

# later with @file directive
type Picture {
  id: ID! @unique
  url: String!
  neighbourHood: Neighbourhood @relation(name: "HomePreview")
  user: User
  experience: Experience @relation(name: "ExperiencePreview")
  place: Place @relation(name: "PlacePictures")
  reservation: Restaurant
  # url(width: Int height: Int): String!
}

type Experience {
  id: ID! @unique
  category: ExperienceCategory @relation(name: "ExperienceCategories")
  title: String!
  host: User!
  location: Location! @relation(name: "ExperienceLocation")
  pricePerPerson: Int!
  reviews: [Review!]! @relation(name: "ExperienceReviews")
  preview: Picture! @relation(name: "ExperiencePreview")
  popularity: Int!
}

type ExperienceCategory {
  id: ID! @unique
  mainColor: String! @default(value: "#123456")
  name: String!
  experience: Experience @relation(name: "ExperienceCategories")
}

type Amenities {
  id: ID! @unique
  place: Place! @relation(name: "PlaceAmenities")
  elevator: Boolean! @default(value: "false")
  petsAllowed: Boolean! @default(value: "false")
  internet: Boolean! @default(value: "false")
  kitchen: Boolean! @default(value: "false")
  wirelessInternet: Boolean! @default(value: "false")
  familyKidFriendly: Boolean! @default(value: "false")
  freeParkingOnPremises: Boolean! @default(value: "false")
  hotTub: Boolean! @default(value: "false")
  pool: Boolean! @default(value: "false")
  smokingAllowed: Boolean! @default(value: "false")
  wheelchairAccessible: Boolean! @default(value: "false")
  breakfast: Boolean! @default(value: "false")
  cableTv: Boolean! @default(value: "false")
  suitableForEvents: Boolean! @default(value: "false")
  dryer: Boolean! @default(value: "false")
  washer: Boolean! @default(value: "false")
  indoorFireplace: Boolean! @default(value: "false")
  tv: Boolean! @default(value: "false")
  heating: Boolean! @default(value: "false")
  hangers: Boolean! @default(value: "false")
  iron: Boolean! @default(value: "false")
  hairDryer: Boolean! @default(value: "false")
  doorman: Boolean! @default(value: "false")
  paidParkingOffPremises: Boolean! @default(value: "false")
  freeParkingOnStreet: Boolean! @default(value: "false")
  gym: Boolean! @default(value: "false")
  airConditioning: Boolean! @default(value: "false")
  shampoo: Boolean! @default(value: "false")
  essentials: Boolean! @default(value: "false")
  laptopFriendlyWorkspace: Boolean! @default(value: "false")
  privateEntrance: Boolean! @default(value: "false")
  buzzerWirelessIntercom: Boolean! @default(value: "false")
  babyBath: Boolean! @default(value: "false")
  babyMonitor: Boolean! @default(value: "false")
  babysitterRecommendations: Boolean! @default(value: "false")
  bathtub: Boolean! @default(value: "false")
  changingTable: Boolean! @default(value: "false")
  childrensBooksAndToys: Boolean! @default(value: "false")
  childrensDinnerware: Boolean! @default(value: "false")
  crib: Boolean! @default(value: "false")
}

type Review {
  id: ID! @unique
  createdAt: DateTime!
  text: String!
  stars: Int!
  accuracy: Int!
  location: Int!
  checkIn: Int!
  value: Int!
  cleanliness: Int!
  communication: Int!
  place: Place! @relation(name: "PlaceReviews")
  experience: Experience @relation(name: "ExperienceReviews")
}

type Booking {
  id: ID! @unique
  createdAt: DateTime!
  bookee: User! @relation(name: "Bookee")
  place: Place! @relation(name: "PlaceBooking")
  startDate: DateTime!
  endDate: DateTime!
  payment: Payment! @relation(name: "BookingPayment")
}

type Payment {
  id: ID! @unique
  createdAt: DateTime!
  serviceFee: Float!
  placePrice: Float!
  totalPrice: Float!
  booking: Booking! @relation(name: "BookingPayment")
  paymentMethod: PaymentAccount! @relation(name: "PaymentAccounts")
}

type PaymentAccount {
  id: ID! @unique
  createdAt: DateTime!
  type: PAYMENT_PROVIDER
  user: User!
  payments: [Payment!]! @relation(name: "PaymentAccounts")
  paypal: PaypalInformation @relation(name: "AccountPaypalInformation")
  creditcard: CreditCardInformation
    @relation(name: "AccountCreditCardInformation")
}

type PaypalInformation {
  id: ID! @unique
  createdAt: DateTime!
  email: String!
  paymentAccount: PaymentAccount! @relation(name: "AccountPaypalInformation")
}

type CreditCardInformation {
  id: ID! @unique
  createdAt: DateTime!
  cardNumber: String!
  expiresOnMonth: Int!
  expiresOnYear: Int!
  securityCode: String!
  firstName: String!
  lastName: String!
  postalCode: String!
  country: String!
  paymentAccount: PaymentAccount @relation(name: "AccountCreditCardInformation")
}

type Message {
  id: ID! @unique
  createdAt: DateTime!
  from: User! @relation(name: "SentMessages")
  to: User! @relation(name: "ReceivedMessages")
  deliveredAt: DateTime!
  readAt: DateTime!
}

type Notification {
  id: ID! @unique
  createdAt: DateTime!
  type: NOTIFICATION_TYPE
  user: User!
  link: String!
  readDate: DateTime!
}

type Restaurant {
  id: ID! @unique
  createdAt: DateTime!
  title: String!
  avgPricePerPerson: Int!
  pictures: [Picture!]!
  location: Location!
  isCurated: Boolean! @default(value: "true")
  slug: String!
  popularity: Int!
}

3: observe error:

This results in the deploy spinning forever:

❯ gc deploy
Deploying service `example-airbnb` to stage `dev` on cluster `local`... 131ms

Changes:

  Location (Type)
  - Deleted field `address`

Applying changes... ⣟

The local container contains this log message:

encountered exception while applying migration. will roll back.
java.sql.SQLSyntaxErrorException: (conn=13) Unknown table 'example-airbnb@dev.ReceivedMessages'
    at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:163)
    at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:106)
    at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:235)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:224)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.execute(MariaDbPreparedStatementClient.java:159)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
    at slick.jdbc.StatementInvoker.results(StatementInvoker.scala:39)
    at slick.jdbc.StatementInvoker.iteratorTo(StatementInvoker.scala:22)
    at slick.jdbc.Invoker.first(Invoker.scala:31)
    at slick.jdbc.Invoker.first$(Invoker.scala:30)
    at slick.jdbc.StatementInvoker.first(StatementInvoker.scala:16)
    at slick.jdbc.StreamingInvokerAction$HeadAction.run(StreamingInvokerAction.scala:52)
    at slick.jdbc.StreamingInvokerAction$HeadAction.run(StreamingInvokerAction.scala:51)
    at slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:240)
    at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:240)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: Unknown table 'example-airbnb@dev.ReceivedMessages'
Query is: DROP TABLE `example-airbnb@dev`.`ReceivedMessages`
    at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:146)
    at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:217)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.mariadb.jdbc.internal.failover.AbstractMastersListener.invoke(AbstractMastersListener.java:376)
    at org.mariadb.jdbc.internal.failover.FailoverProxy.executeInvocation(FailoverProxy.java:220)
    at org.mariadb.jdbc.internal.failover.FailoverProxy.invoke(FailoverProxy.java:213)
    at com.sun.proxy.$Proxy4.executeQuery(Unknown Source)
    at org.mariadb.jdbc.MariaDbPreparedStatementClient.executeInternal(MariaDbPreparedStatementClient.java:218)

The Migration table contains the following unapplied migration:

example-airbnb@dev  5   {"id":"example-airbnb@dev","ownerId":"","revision":1,"models":[{"id":"User","name":"User","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"firstName","name":"firstName","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"lastName","name":"lastName","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"email","name":"email","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"password","name":"password","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"phone","name":"phone","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"responseRate","name":"responseRate","typeIdentifier":"Float","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"responseTime","name":"responseTime","typeIdentifier":"Int","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"isSuperHost","name":"isSuperHost","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"sentMessages","name":"sentMessages","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ReceivedMessages","name":"ReceivedMessages","modelAId":"Message","modelBId":"User","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"receivedMessages","name":"receivedMessages","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ReceivedMessages","name":"ReceivedMessages","modelAId":"Message","modelBId":"User","fieldMirrors":[]},"relationSide":"B","constraints":[]}]},{"id":"Place","name":"Place","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"name","name":"name","typeIdentifier":"String","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"size","name":"size","typeIdentifier":"Enum","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"enum":{"id":"PLACE_SIZES","name":"PLACE_SIZES","values":["ENTIRE_HOUSE","ENTIRE_APARTMENT","ENTIRE_EARTH_HOUSE","ENTIRE_CABIN","ENTIRE_VILLA","ENTIRE_PLACE","ENTIRE_BOAT","PRIVATE_ROOM"]},"constraints":[]},{"id":"shortDescription","name":"shortDescription","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"description","name":"description","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"slug","name":"slug","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"maxGuests","name":"maxGuests","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"numBedrooms","name":"numBedrooms","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"numBeds","name":"numBeds","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"numBaths","name":"numBaths","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"reviews","name":"reviews","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceReviews","name":"PlaceReviews","modelAId":"Place","modelBId":"Review","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"amenities","name":"amenities","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceAmenities","name":"PlaceAmenities","modelAId":"Amenities","modelBId":"Place","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"host","name":"host","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceToUser","name":"PlaceToUser","modelAId":"Place","modelBId":"User","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"pricing","name":"pricing","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlacePrice","name":"PlacePrice","modelAId":"Place","modelBId":"Pricing","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"location","name":"location","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceLocation","name":"PlaceLocation","modelAId":"Location","modelBId":"Place","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"views","name":"views","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceViews","name":"PlaceViews","modelAId":"Place","modelBId":"Views","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"guestRequirements","name":"guestRequirements","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceGuestRequirements","name":"PlaceGuestRequirements","modelAId":"GuestRequirements","modelBId":"Place","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"policies","name":"policies","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlacePolicies","name":"PlacePolicies","modelAId":"Place","modelBId":"Policies","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"houseRules","name":"houseRules","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceHouseRules","name":"PlaceHouseRules","modelAId":"HouseRules","modelBId":"Place","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"bookings","name":"bookings","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceBooking","name":"PlaceBooking","modelAId":"Booking","modelBId":"Place","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"pictures","name":"pictures","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlacePictures","name":"PlacePictures","modelAId":"Picture","modelBId":"Place","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"popularity","name":"popularity","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Pricing","name":"Pricing","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlacePrice","name":"PlacePrice","modelAId":"Place","modelBId":"Pricing","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"monthlyDiscount","name":"monthlyDiscount","typeIdentifier":"Int","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"weeklyDiscount","name":"weeklyDiscount","typeIdentifier":"Int","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"perNight","name":"perNight","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"smartPricing","name":"smartPricing","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"basePrice","name":"basePrice","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"averageWeekly","name":"averageWeekly","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"averageMonthly","name":"averageMonthly","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"cleaningFee","name":"cleaningFee","typeIdentifier":"Int","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"securityDeposit","name":"securityDeposit","typeIdentifier":"Int","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"extraGuests","name":"extraGuests","typeIdentifier":"Int","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"weekendPricing","name":"weekendPricing","typeIdentifier":"Int","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"currency","name":"currency","typeIdentifier":"Enum","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"enum":{"id":"CURRENCY","name":"CURRENCY","values":["CAD","CHF","EUR","JPY","USD","ZAR"]},"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"GuestRequirements","name":"GuestRequirements","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"govIssuedId","name":"govIssuedId","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"recommendationsFromOtherHosts","name":"recommendationsFromOtherHosts","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"guestTripInformation","name":"guestTripInformation","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceGuestRequirements","name":"PlaceGuestRequirements","modelAId":"GuestRequirements","modelBId":"Place","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Policies","name":"Policies","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"checkInStartTime","name":"checkInStartTime","typeIdentifier":"Float","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"checkInEndTime","name":"checkInEndTime","typeIdentifier":"Float","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"checkoutTime","name":"checkoutTime","typeIdentifier":"Float","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlacePolicies","name":"PlacePolicies","modelAId":"Place","modelBId":"Policies","fieldMirrors":[]},"relationSide":"B","constraints":[]}]},{"id":"HouseRules","name":"HouseRules","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"suitableForChildren","name":"suitableForChildren","typeIdentifier":"Boolean","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"suitableForInfants","name":"suitableForInfants","typeIdentifier":"Boolean","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"petsAllowed","name":"petsAllowed","typeIdentifier":"Boolean","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"smokingAllowed","name":"smokingAllowed","typeIdentifier":"Boolean","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"partiesAndEventsAllowed","name":"partiesAndEventsAllowed","typeIdentifier":"Boolean","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"additionalRules","name":"additionalRules","typeIdentifier":"String","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceHouseRules","name":"PlaceHouseRules","modelAId":"HouseRules","modelBId":"Place","fieldMirrors":[]},"relationSide":"A","constraints":[]}]},{"id":"Views","name":"Views","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"lastWeek","name":"lastWeek","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceViews","name":"PlaceViews","modelAId":"Place","modelBId":"Views","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Location","name":"Location","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"lat","name":"lat","typeIdentifier":"Float","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"lng","name":"lng","typeIdentifier":"Float","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"neighbourHood","name":"neighbourHood","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"NeighbourhoodLocation","name":"NeighbourhoodLocation","modelAId":"Location","modelBId":"Neighbourhood","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"user","name":"user","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"LocationToUser","name":"LocationToUser","modelAId":"Location","modelBId":"User","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceLocation","name":"PlaceLocation","modelAId":"Location","modelBId":"Place","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"directions","name":"directions","typeIdentifier":"String","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"experience","name":"experience","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ExperienceLocation","name":"ExperienceLocation","modelAId":"Experience","modelBId":"Location","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"restaurant","name":"restaurant","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"LocationToRestaurant","name":"LocationToRestaurant","modelAId":"Location","modelBId":"Restaurant","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Neighbourhood","name":"Neighbourhood","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"locations","name":"locations","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"NeighbourhoodLocation","name":"NeighbourhoodLocation","modelAId":"Location","modelBId":"Neighbourhood","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"name","name":"name","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"slug","name":"slug","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"homePreview","name":"homePreview","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"HomePreview","name":"HomePreview","modelAId":"Neighbourhood","modelBId":"Picture","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"city","name":"city","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"CityNeighbourhood","name":"CityNeighbourhood","modelAId":"City","modelBId":"Neighbourhood","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"featured","name":"featured","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"popularity","name":"popularity","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"City","name":"City","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"name","name":"name","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"neighbourhoods","name":"neighbourhoods","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"CityNeighbourhood","name":"CityNeighbourhood","modelAId":"City","modelBId":"Neighbourhood","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Picture","name":"Picture","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"url","name":"url","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"neighbourHood","name":"neighbourHood","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"HomePreview","name":"HomePreview","modelAId":"Neighbourhood","modelBId":"Picture","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"user","name":"user","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PictureToUser","name":"PictureToUser","modelAId":"Picture","modelBId":"User","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"experience","name":"experience","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ExperiencePreview","name":"ExperiencePreview","modelAId":"Experience","modelBId":"Picture","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlacePictures","name":"PlacePictures","modelAId":"Picture","modelBId":"Place","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"reservation","name":"reservation","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PictureToRestaurant","name":"PictureToRestaurant","modelAId":"Picture","modelBId":"Restaurant","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Experience","name":"Experience","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"category","name":"category","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ExperienceCategories","name":"ExperienceCategories","modelAId":"Experience","modelBId":"ExperienceCategory","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"title","name":"title","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"host","name":"host","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ExperienceToUser","name":"ExperienceToUser","modelAId":"Experience","modelBId":"User","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"location","name":"location","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ExperienceLocation","name":"ExperienceLocation","modelAId":"Experience","modelBId":"Location","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"pricePerPerson","name":"pricePerPerson","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"reviews","name":"reviews","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ExperienceReviews","name":"ExperienceReviews","modelAId":"Experience","modelBId":"Review","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"preview","name":"preview","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ExperiencePreview","name":"ExperiencePreview","modelAId":"Experience","modelBId":"Picture","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"popularity","name":"popularity","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"ExperienceCategory","name":"ExperienceCategory","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"mainColor","name":"mainColor","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"string","isList":false,"value":"#123456"},"constraints":[]},{"id":"name","name":"name","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"experience","name":"experience","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ExperienceCategories","name":"ExperienceCategories","modelAId":"Experience","modelBId":"ExperienceCategory","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Amenities","name":"Amenities","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceAmenities","name":"PlaceAmenities","modelAId":"Amenities","modelBId":"Place","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"elevator","name":"elevator","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"petsAllowed","name":"petsAllowed","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"internet","name":"internet","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"kitchen","name":"kitchen","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"wirelessInternet","name":"wirelessInternet","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"familyKidFriendly","name":"familyKidFriendly","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"freeParkingOnPremises","name":"freeParkingOnPremises","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"hotTub","name":"hotTub","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"pool","name":"pool","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"smokingAllowed","name":"smokingAllowed","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"wheelchairAccessible","name":"wheelchairAccessible","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"breakfast","name":"breakfast","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"cableTv","name":"cableTv","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"suitableForEvents","name":"suitableForEvents","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"dryer","name":"dryer","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"washer","name":"washer","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"indoorFireplace","name":"indoorFireplace","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"tv","name":"tv","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"heating","name":"heating","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"hangers","name":"hangers","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"iron","name":"iron","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"hairDryer","name":"hairDryer","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"doorman","name":"doorman","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"paidParkingOffPremises","name":"paidParkingOffPremises","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"freeParkingOnStreet","name":"freeParkingOnStreet","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"gym","name":"gym","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"airConditioning","name":"airConditioning","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"shampoo","name":"shampoo","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"essentials","name":"essentials","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"laptopFriendlyWorkspace","name":"laptopFriendlyWorkspace","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"privateEntrance","name":"privateEntrance","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"buzzerWirelessIntercom","name":"buzzerWirelessIntercom","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"babyBath","name":"babyBath","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"babyMonitor","name":"babyMonitor","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"babysitterRecommendations","name":"babysitterRecommendations","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"bathtub","name":"bathtub","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"changingTable","name":"changingTable","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"childrensBooksAndToys","name":"childrensBooksAndToys","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"childrensDinnerware","name":"childrensDinnerware","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"crib","name":"crib","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":false},"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Review","name":"Review","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"text","name":"text","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"stars","name":"stars","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"accuracy","name":"accuracy","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"location","name":"location","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"checkIn","name":"checkIn","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"value","name":"value","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"cleanliness","name":"cleanliness","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"communication","name":"communication","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceReviews","name":"PlaceReviews","modelAId":"Place","modelBId":"Review","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"experience","name":"experience","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ExperienceReviews","name":"ExperienceReviews","modelAId":"Experience","modelBId":"Review","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Booking","name":"Booking","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"bookee","name":"bookee","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"Bookee","name":"Bookee","modelAId":"Booking","modelBId":"User","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"place","name":"place","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PlaceBooking","name":"PlaceBooking","modelAId":"Booking","modelBId":"Place","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"startDate","name":"startDate","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"endDate","name":"endDate","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"payment","name":"payment","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"BookingPayment","name":"BookingPayment","modelAId":"Booking","modelBId":"Payment","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Payment","name":"Payment","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"serviceFee","name":"serviceFee","typeIdentifier":"Float","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"placePrice","name":"placePrice","typeIdentifier":"Float","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"totalPrice","name":"totalPrice","typeIdentifier":"Float","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"booking","name":"booking","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"BookingPayment","name":"BookingPayment","modelAId":"Booking","modelBId":"Payment","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"paymentMethod","name":"paymentMethod","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PaymentAccounts","name":"PaymentAccounts","modelAId":"Payment","modelBId":"PaymentAccount","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"PaymentAccount","name":"PaymentAccount","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"type","name":"type","typeIdentifier":"Enum","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"enum":{"id":"PAYMENT_PROVIDER","name":"PAYMENT_PROVIDER","values":["PAYPAL","CREDIT_CARD"]},"constraints":[]},{"id":"user","name":"user","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PaymentAccountToUser","name":"PaymentAccountToUser","modelAId":"PaymentAccount","modelBId":"User","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"payments","name":"payments","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PaymentAccounts","name":"PaymentAccounts","modelAId":"Payment","modelBId":"PaymentAccount","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"paypal","name":"paypal","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"AccountPaypalInformation","name":"AccountPaypalInformation","modelAId":"PaymentAccount","modelBId":"PaypalInformation","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"creditcard","name":"creditcard","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"AccountCreditCardInformation","name":"AccountCreditCardInformation","modelAId":"CreditCardInformation","modelBId":"PaymentAccount","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"PaypalInformation","name":"PaypalInformation","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"email","name":"email","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"paymentAccount","name":"paymentAccount","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"AccountPaypalInformation","name":"AccountPaypalInformation","modelAId":"PaymentAccount","modelBId":"PaypalInformation","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"CreditCardInformation","name":"CreditCardInformation","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"cardNumber","name":"cardNumber","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"expiresOnMonth","name":"expiresOnMonth","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"expiresOnYear","name":"expiresOnYear","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"securityCode","name":"securityCode","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"firstName","name":"firstName","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"lastName","name":"lastName","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"postalCode","name":"postalCode","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"country","name":"country","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"paymentAccount","name":"paymentAccount","typeIdentifier":"Relation","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"AccountCreditCardInformation","name":"AccountCreditCardInformation","modelAId":"CreditCardInformation","modelBId":"PaymentAccount","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Message","name":"Message","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"from","name":"from","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ReceivedMessages","name":"ReceivedMessages","modelAId":"Message","modelBId":"User","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"to","name":"to","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"ReceivedMessages","name":"ReceivedMessages","modelAId":"Message","modelBId":"User","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"deliveredAt","name":"deliveredAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"readAt","name":"readAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Notification","name":"Notification","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"type","name":"type","typeIdentifier":"Enum","isRequired":false,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"enum":{"id":"NOTIFICATION_TYPE","name":"NOTIFICATION_TYPE","values":["OFFER","INSTANT_BOOK","RESPONSIVENESS","NEW_AMENITIES","HOUSE_RULES"]},"constraints":[]},{"id":"user","name":"user","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"NotificationToUser","name":"NotificationToUser","modelAId":"Notification","modelBId":"User","fieldMirrors":[]},"relationSide":"A","constraints":[]},{"id":"link","name":"link","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"readDate","name":"readDate","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]},{"id":"Restaurant","name":"Restaurant","fields":[{"id":"id","name":"id","typeIdentifier":"GraphQLID","isRequired":true,"isList":false,"isUnique":true,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"createdAt","name":"createdAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"title","name":"title","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"avgPricePerPerson","name":"avgPricePerPerson","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"pictures","name":"pictures","typeIdentifier":"Relation","isRequired":false,"isList":true,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"PictureToRestaurant","name":"PictureToRestaurant","modelAId":"Picture","modelBId":"Restaurant","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"location","name":"location","typeIdentifier":"Relation","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"relation":{"id":"LocationToRestaurant","name":"LocationToRestaurant","modelAId":"Location","modelBId":"Restaurant","fieldMirrors":[]},"relationSide":"B","constraints":[]},{"id":"isCurated","name":"isCurated","typeIdentifier":"Boolean","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"defaultValue":{"gcValueType":"bool","isList":false,"value":true},"constraints":[]},{"id":"slug","name":"slug","typeIdentifier":"String","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"popularity","name":"popularity","typeIdentifier":"Int","isRequired":true,"isList":false,"isUnique":false,"isHidden":false,"isReadonly":false,"constraints":[]},{"id":"updatedAt","name":"updatedAt","typeIdentifier":"DateTime","isRequired":true,"isList":false,"isUnique":false,"isHidden":true,"isReadonly":true,"constraints":[]}]}],"relations":[{"id":"ReceivedMessages","name":"ReceivedMessages","modelAId":"Message","modelBId":"User","fieldMirrors":[]},{"id":"CityNeighbourhood","name":"CityNeighbourhood","modelAId":"City","modelBId":"Neighbourhood","fieldMirrors":[]},{"id":"PlaceViews","name":"PlaceViews","modelAId":"Place","modelBId":"Views","fieldMirrors":[]},{"id":"AccountPaypalInformation","name":"AccountPaypalInformation","modelAId":"PaymentAccount","modelBId":"PaypalInformation","fieldMirrors":[]},{"id":"PlacePrice","name":"PlacePrice","modelAId":"Place","modelBId":"Pricing","fieldMirrors":[]},{"id":"LocationToUser","name":"LocationToUser","modelAId":"Location","modelBId":"User","fieldMirrors":[]},{"id":"PictureToUser","name":"PictureToUser","modelAId":"Picture","modelBId":"User","fieldMirrors":[]},{"id":"PlaceHouseRules","name":"PlaceHouseRules","modelAId":"HouseRules","modelBId":"Place","fieldMirrors":[]},{"id":"PlaceReviews","name":"PlaceReviews","modelAId":"Place","modelBId":"Review","fieldMirrors":[]},{"id":"LocationToRestaurant","name":"LocationToRestaurant","modelAId":"Location","modelBId":"Restaurant","fieldMirrors":[]},{"id":"PictureToRestaurant","name":"PictureToRestaurant","modelAId":"Picture","modelBId":"Restaurant","fieldMirrors":[]},{"id":"ExperiencePreview","name":"ExperiencePreview","modelAId":"Experience","modelBId":"Picture","fieldMirrors":[]},{"id":"PlaceGuestRequirements","name":"PlaceGuestRequirements","modelAId":"GuestRequirements","modelBId":"Place","fieldMirrors":[]},{"id":"PlaceAmenities","name":"PlaceAmenities","modelAId":"Amenities","modelBId":"Place","fieldMirrors":[]},{"id":"BookingPayment","name":"BookingPayment","modelAId":"Booking","modelBId":"Payment","fieldMirrors":[]},{"id":"ExperienceLocation","name":"ExperienceLocation","modelAId":"Experience","modelBId":"Location","fieldMirrors":[]},{"id":"PlaceLocation","name":"PlaceLocation","modelAId":"Location","modelBId":"Place","fieldMirrors":[]},{"id":"PaymentAccountToUser","name":"PaymentAccountToUser","modelAId":"PaymentAccount","modelBId":"User","fieldMirrors":[]},{"id":"PlacePictures","name":"PlacePictures","modelAId":"Picture","modelBId":"Place","fieldMirrors":[]},{"id":"PlaceBooking","name":"PlaceBooking","modelAId":"Booking","modelBId":"Place","fieldMirrors":[]},{"id":"PaymentAccounts","name":"PaymentAccounts","modelAId":"Payment","modelBId":"PaymentAccount","fieldMirrors":[]},{"id":"NotificationToUser","name":"NotificationToUser","modelAId":"Notification","modelBId":"User","fieldMirrors":[]},{"id":"NeighbourhoodLocation","name":"NeighbourhoodLocation","modelAId":"Location","modelBId":"Neighbourhood","fieldMirrors":[]},{"id":"ExperienceReviews","name":"ExperienceReviews","modelAId":"Experience","modelBId":"Review","fieldMirrors":[]},{"id":"AccountCreditCardInformation","name":"AccountCreditCardInformation","modelAId":"CreditCardInformation","modelBId":"PaymentAccount","fieldMirrors":[]},{"id":"ReceivedMessages","name":"SentMessages","modelAId":"Message","modelBId":"User","fieldMirrors":[]},{"id":"Bookee","name":"Bookee","modelAId":"Booking","modelBId":"User","fieldMirrors":[]},{"id":"PlaceToUser","name":"PlaceToUser","modelAId":"Place","modelBId":"User","fieldMirrors":[]},{"id":"HomePreview","name":"HomePreview","modelAId":"Neighbourhood","modelBId":"Picture","fieldMirrors":[]},{"id":"PlacePolicies","name":"PlacePolicies","modelAId":"Place","modelBId":"Policies","fieldMirrors":[]},{"id":"ExperienceCategories","name":"ExperienceCategories","modelAId":"Experience","modelBId":"ExperienceCategory","fieldMirrors":[]},{"id":"ExperienceToUser","name":"ExperienceToUser","modelAId":"Experience","modelBId":"User","fieldMirrors":[]}],"enums":[{"id":"CURRENCY","name":"CURRENCY","values":["CAD","CHF","EUR","JPY","USD","ZAR"]},{"id":"PLACE_SIZES","name":"PLACE_SIZES","values":["ENTIRE_HOUSE","ENTIRE_APARTMENT","ENTIRE_EARTH_HOUSE","ENTIRE_CABIN","ENTIRE_VILLA","ENTIRE_PLACE","ENTIRE_BOAT","PRIVATE_ROOM"]},{"id":"PAYMENT_PROVIDER","name":"PAYMENT_PROVIDER","values":["PAYPAL","CREDIT_CARD"]},{"id":"NOTIFICATION_TYPE","name":"NOTIFICATION_TYPE","values":["OFFER","INSTANT_BOOK","RESPONSIVENESS","NEW_AMENITIES","HOUSE_RULES"]}],"secrets":[],"seats":[],"allowQueries":true,"allowMutations":true,"functions":[],"featureToggles":[]}    [{"model":"Location","name":"address","discriminator":"DeleteField"},{"name":"SentMessages","newName":"ReceivedMessages","discriminator":"UpdateRelation"}] 0
[{"model":"Location","name":"address","discriminator":"DeleteField"},{"name":"SentMessages","newName":"ReceivedMessages","discriminator":"UpdateRelation"}]

Deleting the migration and running gc deploy again succeeds and the resulting migration is:

[{"model":"Location","name":"address","discriminator":"DeleteField"},{"name":"SentMessages","newName":"ReceivedMessages","discriminator":"UpdateRelation"}]

Adding the field again causes a similar issue. Again, deleting the migration and running it again works.

marktani commented 6 years ago

This has been fixed.