import gql from 'graphql-tag';
export default gql `
  scalar JSON
  scalar Date
  scalar SyncMode
  scalar ShopifyObjectType
  scalar ShopifyBulkJobStatus
  scalar AirtableSyncJobStatus
  scalar SyncToShopifyStatus

  interface Model {
    id: ID!
    created_at: Date!
    updated_at: Date!
  }

  type Query {
    account: Account!

    base(airtableBaseId: String!): Base
  }

  input AirtableLoginInput {
    shopify_domain: String!
    airtable_api_key: String!
  }

  input RegisterPrivateAppAccountInput {
    shopify_domain: String!
    airtable_api_key: String!
    private_app_api_key: String!
    private_app_password: String!
    private_app_shared_secret: String!

    # input required to validate the Airtable API key
    airtable_base_id: String!
    airtable_table: JSON!
  }

  # this is only while private apps are a thing
  input UpdateAirtableApiKeyInput {
    airtable_api_key: String!
    shopify_domain: String!
    private_app_api_key: String!

    # input required to validate the Airtable API key
    airtable_base_id: String!
    airtable_table: JSON!
  }

  type AirtableLogInResponse {
    jwt: String!
  }

  type SyncRecordsResponse {
    records: [AT_Record!]!
    airtableToShopifySync: AirtableToShopifySync!
  }

  type Mutation {
    logInFromAirtableBlock(input: AirtableLoginInput!): AirtableLogInResponse!
    registerPrivateAppAccount(input: RegisterPrivateAppAccountInput!): AirtableLogInResponse!

    updateAccountAirtableProps(input: AirtablePropsInput!): Account!

    createBase(input: CreateBaseInput!): Base!

    syncBase(input: BaseInput!): Base!
    syncTable(input: TableInput!): Table!
    syncRecords(input: RecordInput!): SyncRecordsResponse!

    updateAirtableApiKey(input: UpdateAirtableApiKeyInput!): Account!
    recreateField(input: RecreateFieldInput!): Table!
    createTable(createTableInput: CreateTableInput!): Table!
  }
`;
//# sourceMappingURL=BasicTypes.js.map