Как смоделировать ценообразование c для конкретного пользователя в приложении электронной коммерции с помощью AWS AppSyn c (DynamoDB)? - PullRequest
0 голосов
/ 04 августа 2020

Мне нужна помощь в разработке модели данных для определения c ценообразования в приложении электронной коммерции. AWS Amplify / AppSyn c с DynamoDB используется для разработки. У меня есть первое работающее решение, но я новичок в GraphQL и DynamoDB, поэтому думаю, что должен быть лучший способ сделать это. У меня есть модель продукта с ~ 50к записями. На самом деле модель довольно проста и имеет два свойства: «цена» и «salePrice».

type Product @model {
  id: ID!
  sku: String!
  price: Float!
  salePrice: Float
  discountPrice: DiscountPrice @connection
}

Теперь я хочу иметь c цены, указанные пользователем, где теоретически каждый покупатель может иметь свою цену. Я попытался создать для этого новую модель, которая выглядит следующим образом:

type DiscountPrice @model @auth(rules: [{ allow: owner }]) {
  id: ID!
  minQuantity: Int!
  price: Float!
}

Чтобы установить цену, указанную пользователем c, я могу создать запись со свойством владельца для идентификатора пользователя. . Это работает, если я запрашиваю у пользователя, который является владельцем записи DiscountPrice. В противном случае я получу сообщение об ошибке «Не авторизован для доступа к цене со скидкой по типу продукта».

Запрос:

query getProduct {
  getProduct(id: "xxx") {
    id
    sku
    price
    salePrice
    discountPrice {
      minQuantity
      price
    }
  }
}

Это правильный способ моделирования такой функции? Как я могу избавиться от этой ошибки, если записи не существует, или как лучше использовать другой вариант?

Заранее спасибо

...