`type Market @model @searchable { id: ID! name: String! products: [Product] @connection(name: "MarketProducts", sortField: "createdAt") tags: [String] owner: String! createdAt: String }
type Product @model @auth( rules: [ { allow: owner operations: [create, delete, update] identityField: "sub" } ] ) { id: ID! description: String! market: Market @connection(name: "MarketProducts") file: S3Object! price: Float! shipped: Boolean! owner: String createdAt: String }
type S3Object { bucket: String! region: String! key: String! }
type User @model( queries: { get: "getUser" } mutations: { create: "registerUser", update: "updateUser" } subscriptions: null ) { id: ID! username: String! email: String! registered: Boolean orders: [Order] @connection(name: "UserOrders", sortField: "createdAt") }
type Order @model( queries: null mutations: { create: "createOrder" } subscriptions: null ) { id: ID! product: Product @connection user: User @connection(name: "UserOrders") shippingAddress: ShippingAddress createdAt: String }
type ShippingAddress { city: String! country: String! address_line1: String! address_state: String! address_zip: String! } `