type Product {
  name: String!
  price: Float!
}

type Customer @model @auth(rules: [{ allow: owner }]) {
  name: String
  email: String
  activeCart: Cart @hasOne(references: "customerId")
  orderHistory: [Order] @hasMany(references: "customerId")
}

type Cart @model @auth(rules: [{ allow: owner }]) {
  products: [Product]
  customerId: ID
  customer: Customer @belongsTo(references: "customerId")
}

type Order @model @auth(rules: [{ allow: owner }]) {
  products: [Product]
  customerId: ID
  customer: Customer @belongsTo(references: "customerId")
}

type Mutation {
  ROUTE_NAME(
    conversationId: ID!,
    content: [AmplifyAIContentBlockInput],
    aiContext: AWSJSON,
    toolConfiguration: AmplifyAIToolConfigurationInput
  ): AmplifyAIConversationMessage
  @conversation(
    aiModel: "anthropic.claude-3-haiku-20240307-v1:0",
    systemPrompt: "You are a helpful chatbot. Answer questions to the best of your ability.",
    tools: [
      {
        name: "random_name",
        description: "Provides data about the customer sending a message",
        modelName: "Customer",
        modelOperation: list,
      },
    ],
    auth: { strategy: owner, provider: userPools },
  )
}