{"data":{"_service":{"sdl":"type Mutation {\n  \"\"\"\n  Create account\n  \"\"\"\n  signUp(input: SignUpInput!): SignupResponse\n  \"\"\"\n  Sign in\n  \"\"\"\n  signInEstore(input: SignInInputEstore!): SignInEstoreResponse\n\n  \"\"\"\n  Update account\n  \"\"\"\n  updateUserAccountEstore(input: UpdateUserAccountInput!, userId: ID): ApiResponse\n\n  \"\"\"\n  Delete account\n  \"\"\"\n  deleteAccount(userId: ID!): ApiResponse\n\n  \"\"\"\n  Create User Address\n  \"\"\"\n  createUserAddress(input: UserAddressInput!): ApiResponse\n\n  \"\"\"\n  Update User Address\n  \"\"\"\n  updateUserAddress(input: UserAddressInput!, addressId: ID!, subZoneId: ID): ApiResponse\n\n  \"\"\"\n  Make User Address Default\n  \"\"\"\n  makeUserAddressDefault(addressId: ID!, previusDefalut: ID!): ApiResponse\n  \"\"\"\n  Delete User Address\n  \"\"\"\n  deleteUserAddress(id: ID!): ApiResponse\n  \"\"\"\n  Create a Product\n  \"\"\"\n  createProduct(input: CreateProductInput!, storeId: [ID!], categoryId: ID!): ApiResponse\n\n  \"\"\"\n  Bulk upload products\n  \"\"\"\n  bulkUploadProducts(input: BulkCreateProductInput!): ApiResponse\n\n  \"\"\"\n  Update Product Status\n  \"\"\"\n  updateProductStatus(input: [UpdateProductStatusInput]!): ApiResponse\n\n  \"\"\"\n  Create a Store\n  \"\"\"\n  createStore(input: CreateStoreInput!): ApiResponse\n\n  \"\"\"\n  Update a Store\n  \"\"\"\n  updateStore(input: UpdateStoreInput!, storeId: ID!, addressId: ID): ApiResponse\n\n  \"\"\"\n  Delete a Store\n  \"\"\"\n  deleteStore(storeId: ID!): ApiResponse\n\n  \"\"\"\n  Update a Product\n  \"\"\"\n  updateProduct(input: UpdateProductInput!, productId: ID!): ApiResponse\n\n  \"\"\"\n  Delete a Product\n  \"\"\"\n  deleteProduct(productIds: [ID!]): ApiResponse\n\n  \"\"\"\n  Delete Digital Product Content\n  \"\"\"\n  deleteDigitalProductContent(contentId: ID!): ApiResponse\n\n  \"\"\"\n  Delete Product Images\n  \"\"\"\n  deleteProductImages(productId: ID!, imageID: String!, productId: ID!): ApiResponse\n\n  \"\"\"\n  Create Product SEO\n  \"\"\"\n  createProductSEO(input: ProductSEOInput!, productId: ID!): ApiResponse\n\n  \"\"\"\n  Update Product SEO\n  \"\"\"\n  updateProductSEO(input: ProductSEOInput!, seoId: ID!): ApiResponse\n\n  \"\"\"\n  Delete Product SEO\n  \"\"\"\n  deleteProductSEO(seoId: ID!): ApiResponse\n\n  \"\"\"\n  Create product Variant\n  \"\"\"\n  createProductVariant(input: ProductVariantInput!, productId: ID!): ApiResponse\n\n  \"\"\"\n  Update product Variant\n  \"\"\"\n  updateProductVariant(input: ProductVariantInput!): ApiResponse\n\n  \"\"\"\n  Delete product Variant\n  \"\"\"\n  deleteProductVariant(variantId: ID!, productID: ID!): ApiResponse\n\n  \"\"\"\n  Create Product Discount\n  \"\"\"\n  createProductDiscount(input: DiscountInput!, productId: ID!): ApiResponse\n\n  \"\"\"\n  Add product to WishList\n  \"\"\"\n  addProductToWishList(productId: ID!, userId: ID): ApiResponse\n\n  \"\"\"\n  Add product to user recently Viewed\n  \"\"\"\n  addProductToRecentlyViewed(productId: ID!, userId: ID): ApiResponse\n\n  \"\"\"\n  Remove product from WishList\n  \"\"\"\n  removeProductFromWishList(productId: ID!, userId: ID): ApiResponse\n\n  \"\"\"\n  Add Product to Cart\n  \"\"\"\n  addProductToCart(input: CartProductInput!, boxId: ID): ApiResponse\n\n  \"\"\"\n  Remove Product from Cart\n  \"\"\"\n  removeProductFromCart(cartProductVariantId: ID!): ApiResponse\n\n  \"\"\"\n  Update Cart\n  \"\"\"\n  updateCart(cartProductVariantId: ID!, quantity: Int!): ApiResponse\n\n  \"\"\"\n  Create Order\n  \"\"\"\n  createOrder(input: CreateOrderInput!, addressId: ID, subZoneId: ID): ApiResponse\n\n  \"\"\"\n  Update Order Status\n  \"\"\"\n  updateOrderStatus(input: [updateOrderStatusInput!]!): ApiResponse\n\n  \"\"\"\n  Customer Review Product\n  \"\"\"\n  reviewProduct(input: ReviewProductInput!): ApiResponse\n\n  \"\"\"\n  Admin/Vendor to delete a review\n  \"\"\"\n  deleteReview(reviewId: ID!): ApiResponse\n\n  \"\"\"\n  Create A Product Category\n  \"\"\"\n  createProductCategory(input: CreateCategoryInput!): ApiResponse\n\n  \"\"\"\n  Update A Product Category\n  \"\"\"\n  updateProductCategory(id: ID!, input: UpdateCategoryInput!): ApiResponse\n\n  \"\"\"\n  Delete A Product Category\n  \"\"\"\n  deleteProductCategory(id: ID!): ApiResponse\n\n  \"\"\"\n  Search For Product By Name or description\n  \"\"\"\n  findProductByName(name: String!): [Product]\n\n  \"\"\"\n  create or update vendor configuration\n  \"\"\"\n  createOrUpdateVendorConfiguration(input: VendorConfigurationInput!, id: ID): ApiResponse\n\n  \"\"\"\n  Create Product Promo\n  \"\"\"\n  createProductPromo(input: PromoInput!): ApiResponse\n\n  \"\"\"\n  Delete Promotion\n  \"\"\"\n  deletePromo(id: ID!): ApiResponse\n\n  \"\"\"\n  UPDATE PRODUCT PROMO\n  \"\"\"\n  updateProductPromo(input: UpdatePromoInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  Add Item To Promotion\n  \"\"\"\n  addItemToPromotion(productId: [ID!]!, promoId: ID!): ApiResponse\n\n  \"\"\"\n  Remove Product From Promotion\n  \"\"\"\n  removeProductFromPromotion(productId: ID!, promoId: ID!): ApiResponse\n\n  \"\"\"\n  Verify If Email/Phone Number Is Registered\n  \"\"\"\n  verifyEmailAndPhone(value: String): EmailVerificationResponse\n\n  \"\"\"\n  Setup Vendor For The First Time\n  \"\"\"\n  vendorSetup(input: VendorPaymentMode!, storeId: ID): ApiResponse\n\n  \"\"\"\n  Set Product as Featured\n  \"\"\"\n  setProductAsFeatured(productId: ID!, featured: Boolean!): ApiResponse\n  \"\"\"\n  Mutation Intiate Payment Withdrawal\n  \"\"\"\n  initiatePaymentWithdrawal(storeId: ID!, amount: Float!): ApiResponse\n\n  \"\"\"\n  Finish withdrawal initiation\n  \"\"\"\n  paymentWithdrawal(otp: String!, transaction: ID!, amount: Float!, storeId: ID): ApiResponse\n  \"\"\"\n  Update User Password\n  \"\"\"\n  updateUserPassword(email: String, token: String, currentPassword: String, newPassword: String!): UpdatePasswordResonse\n\n  \"\"\"\n  Initiate Estore Password Reset\n  \"\"\"\n  initiatePasswordReset(email: String, platform: Platform): ApiResponse\n\n  \"\"\"\n  Update Store Payment Method\n  \"\"\"\n  updateStorePaymentMethod(input: VendorPaymentMode, storeId: ID!): ApiResponse\n\n  \"\"\"\n  Create School Box\n  \"\"\"\n  createSchoolBox(input: SchoolBoxInput!): ApiResponse\n  \"\"\"\n  Update school box mutation\n  \"\"\"\n  updateSchoolBoxMutation(input: SchoolBoxInput!, id: ID!): ApiResponse\n  \"\"\"\n  Delete School Box\n  \"\"\"\n  deleteSchoolBox(id: ID!): ApiResponse\n  \"\"\"\n  Add products to school box\n  \"\"\"\n  addProductsToBox(productsId: [ProductBoxInput!]!, boxId: ID!): ApiResponse\n\n  \"\"\"\n  Remove Products from box\n  \"\"\"\n  removeProductsFromBox(productsId: [ID!]!, boxId: ID!): ApiResponse\n  \"\"\"\n  SYNC PRODUCT BETWEEN DATABASE AND ELASTIC SEARCH\n  \"\"\"\n  syncProduct: ApiResponse\n\n  \"\"\"\n  Dummy Api\n  \"\"\"\n  testMutation: ApiResponse\n\n  \"\"\"\n  Checkout Out\n  \"\"\"\n  checkoutGuestShopper(cartItems: [CartProductInput!], boxId: ID, address: UserAddressInput!, schoolId: ID, deliveryLocation: DELVERY_LOCATION, mpesaPhone: String!, subZoneId: ID): ApiResponse\n\n  \"\"\"\n  Authorize Shopify App\n  \"\"\"\n  authorizeShopifyApp(shop: String!, storeId: ID!): ApiResponse\n\n  \"\"\"\n  Sync shopify products with estore\n  \"\"\"\n  syncShopifyProducts(storeId: ID!): ApiResponse\n\n  \"\"\"\n  Create shopify webhook\n  \"\"\"\n  createShopifyWebhook(input: shopifyWebhookInput!): ApiResponse\n\n  \"\"\"\n  Update shopify webhook\n  \"\"\"\n  updateShopifyWebhook(input: shopifyWebhookInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  Delete shopify webhook\n  \"\"\"\n  deleteShopifyWebhook(id: ID!): ApiResponse\n\n  \"\"\"\n  Create Delivery Zone\n  \"\"\"\n  createDeliveryZone(input: DeliveryZoneInput!): ApiResponse\n\n  \"\"\"\n  Update Delivery Zone\n  \"\"\"\n  updateDeliveryZone(input: UpdateDeliveryZoneInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  Delete Delivery Zone\n  \"\"\"\n  deleteDeliveryZone(id: ID!): ApiResponse\n\n  \"\"\"\n  Create Delivery Sub Zone\n  \"\"\"\n  createDeliverySubZone(input: [DeliverySubZoneInput!]!): ApiResponse\n\n  \"\"\"\n  Update Delivery Sub Zone\n  \"\"\"\n  updateDeliverySubZone(input: UpdateDeliverySubZoneInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  Delete Delivery Sub Zone\n  \"\"\"\n  deleteDeliverySubZone(id: ID!): ApiResponse\n\n  \"\"\"\n  Create School Lead\n  \"\"\"\n  createSchoolLead(input: SchoolLeadInput!): ApiResponse\n\n  \"\"\"\n  Update School Lead\n  \"\"\"\n  updateSchoolLead(input: UpdateSchoolLeadInput!, id: ID!): ApiResponse\n\n  \"\"\"\n  Delete School Lead\n  \"\"\"\n  deleteSchoolLead(id: ID!): ApiResponse\n\n  \"\"\"\n  Bulk create SChool Leads\n  \"\"\"\n  bulkCreateSchoolLeads(csvUploadFile: AttachmentInput!): ApiResponse\n  \"\"\"\n  Update FCM token wallet\n  \"\"\"\n  updateFcmTokenMobile(token: String!): ApiResponse\n  \"\"\"\n  Send a message\n  \"\"\"\n  sendMessageEstore(input: SendMessageInputEstore): ApiResponse\n  \"\"\"\n  Delete message\n  \"\"\"\n  deleteMessageEstore(where: ID!): ApiResponse\n  messageSeenEstore(id: ID!): ApiResponse\n  \"\"\"\n  Create Agent\n  \"\"\"\n  createAgent(input: SignUpInput!): SignupResponse\n\n  \"\"\"\n  Update Agent\n  \"\"\"\n  updateAgent(input: UpdateUserAccountInput!, userId: ID!): ApiResponse\n\n  \"\"\"\n  Delete Agent\n  \"\"\"\n  deleteAgent(userId: ID!): ApiResponse\n\n  digitalProductBought(productId: ID!, purchaseId: ID!): ApiResponse\n\n  \"\"\"\n  PRINT DIGITAL RECEIPT\n  \"\"\"\n  printPurchareReceipt(orderId: ID!): PrintablePDFResponse\n\n  \"\"\"\n  QUERY LLM MOdule\n  \"\"\"\n  sendAssistantMessage(conversationId: ID, query: String!): ApiResponse\n}\n\ntype Query {\n  \"\"\"\n  Get registred users\n  \"\"\"\n  getUsers(filter: UserFilter): [Account]\n\n  \"\"\"\n  Get User Details\n  \"\"\"\n  getUser(id: ID): Account\n\n  \"\"\"\n  Get my Stores\n  \"\"\"\n  getStores(userId: ID, schoolId: ID): [Store]\n\n  \"\"\"\n  Get a single Store\n  \"\"\"\n  getStore(id: ID!): Store\n\n  \"\"\"\n  Get all Products\n  \"\"\"\n  getProducts(userId: ID, paginate: PaginationInput, filter: ProductFilterInput): PaginatedProducts\n\n  \"\"\"\n  Get a single Product\n  \"\"\"\n  getProduct(id: ID!): Product\n\n  \"\"\"\n  Get all ProductSEO\n  \"\"\"\n  getProductSEOs(productId: ID!): [ProductSEO]\n\n  \"\"\"\n  Get customer cart\n  \"\"\"\n  getCustomerCart: Cart\n\n  \"\"\"\n  Get all Orders\n  \"\"\"\n  getOrders(paginate: PaginationInput, orderStatus: [OrderStatus], buyerId: ID, userId: ID, schoolId: ID): PaginatedOrders\n\n  \"\"\"\n  Get  Product Orders\n  \"\"\"\n  getProductOrders(productId: ID!, paginate: PaginationInput, filter: FiltersType): PaginatedOrders\n\n  \"\"\"\n  Get a single Order\n  \"\"\"\n  getOrder(orderId: ID!): Order\n\n  \"\"\"\n  Get Product Reviews\n  \"\"\"\n  getProductReviews(productId: ID!, paginate: PaginationInput!): PaginatedProductReviews\n\n  \"\"\"\n  Get Customers\n  \"\"\"\n  getCustomers(paginate: PaginationInput, vendorId: [ID!], schoolId: ID): PaginatedCustomers\n\n  \"\"\"\n  Get Vendors\n  \"\"\"\n  getVendors(paginate: PaginationInput): PaginatedVendors\n\n  \"\"\"\n  Get Vendor\n  \"\"\"\n  getVendor(id: ID!): Vendor\n\n  \"\"\"\n  Get Product Categories\n  \"\"\"\n  getProductCategories(paginate: PaginationInput!): PaginatedCategory\n\n  \"\"\"\n  Get Popular Categories\n  \"\"\"\n  getPopularCategoires(input: PaginationInput): [ProductCategory]\n\n  \"\"\"\n  Get Indexed Categories\n  \"\"\"\n  getIndexedCategories(paginate: PaginationInput!): [ProductCategory]\n\n  \"\"\"\n  Search Products By Name From Index\n  \"\"\"\n  searchProductByName(string: String!): [Product]\n\n  \"\"\"\n  Product Filter Response\n  \"\"\"\n  productFilters(string: String, filter: ProductFilter): ProductFilterResponse\n\n  \"\"\"\n  Search Products By Name From Index\n  \"\"\"\n  searchAllProductsByName(string: String!, pagination: PaginationInput, filter: ProductFilter): [Product]\n\n  \"\"\"\n  Get Indexed Products\n  \"\"\"\n  getIndexedProducts(filter: ProductFilter!, pagination: PaginationInput): [Product]\n\n  \"\"\"\n  Get similar products\n  \"\"\"\n  getSimilarProducts(id: ID!, pagination: PaginationInput): [Product]\n  \"\"\"\n  Get User Default Address\n  \"\"\"\n  getDefaultAddress(userId: ID, storeId: ID): UserAddress\n\n  \"\"\"\n  Get Address By Id\n  \"\"\"\n  address(id: ID): UserAddress\n\n  getAddresses(userId: ID, storeId: ID): [UserAddress]\n\n  \"\"\"\n  Get Product View For Frontend Ui\n  \"\"\"\n  productDetails(id: ID!): Product\n\n  \"\"\"\n  Get Recently Viewed Products\n  \"\"\"\n  recentlyViewedProducts(pagination: PaginationInput): [Product]\n\n  \"\"\"\n  Fetch Transactions\n  \"\"\"\n  transactions(filters: TransactionsFilter): [Transaction]\n\n  \"\"\"\n  Fetch Single Transaction\n  \"\"\"\n  transaction(id: ID!): Transaction\n\n  \"\"\"\n  Fetch Featured Products\n  \"\"\"\n  featuredProducts(input: PaginationInput): [Product]\n\n  \"\"\"\n  Get Product Promos\n  \"\"\"\n  getPromos(pagination: PaginationInput): [Promo]\n\n  \"\"\"\n  Get Single Promo\n  \"\"\"\n  getPromo(id: ID!): Promo\n\n  \"\"\"\n  Get Delivery Price\n  \"\"\"\n  getDeliveryPrice: DeliveryPricing\n\n  getVendorConfigurations: VendorConfigurations\n  \"\"\"\n  Get Vendor Dashboard stats\n  \"\"\"\n  getVendorDashboardStats(vendorId: ID, schoolId: ID): VendorDashboardStats\n\n  \"\"\"\n  Get user digital products\n  \"\"\"\n  getUserDigitalContent(type: DigitalContentProvider): [DigitalContent]\n\n  getDigitalContent(id: ID!): DigitalContent\n\n  \"\"\"\n  Get Customer Products\n  \"\"\"\n  getAllProductsUi(filter: ProductFilter!, pagination: PaginationInput, sortOrder: SortOrder, query: String): PaginatedProducts\n\n  \"\"\"\n  Customer Products Wishlist\n  \"\"\"\n  productWishlist(pagination: PaginationInput): [ProductWishlist]\n\n  \"\"\"\n  Vendor account balance\n  \"\"\"\n  vendorAccountBalance(schoolId: ID): VendorAccountBalance\n\n  \"\"\"\n  Get User Notification\n  \"\"\"\n  estoreNotifications(read: Boolean): [Notification]\n\n  \"\"\"\n  Get User Payouts\n  \"\"\"\n  userPayouts(id: ID): [Payout]\n\n  \"\"\"\n  Get All Potential Schools\n  \"\"\"\n  getPotentialSchools(county: String, pagination: PaginationInput, search: String): [PotentialSchool]\n\n  \"\"\"\n  Promo Eligible Products\n  \"\"\"\n  getPromoEligibleProducts(promoId: ID!): [Product]\n  \"\"\"\n  Get PendingProductReview\n  \"\"\"\n  getPendingOrderReviews(pagination: PaginationInput): [OrderReview]\n\n  \"\"\"\n  MTD REVENUE\n  \"\"\"\n  vendorYearTransactions: VendorTransactionBreakdown\n  \"\"\"\n  Product Reviews Count\n  \"\"\"\n  productReviewsCount(id: ID!): ProductReviewBreakdown\n\n  \"\"\"\n  Get Cart shipping pricing\n  \"\"\"\n  calculateCartShippingPricing: Float\n\n  \"\"\"\n  Get School Product Boxes\n  \"\"\"\n  getSchoolBoxes(county: String, schoolId: ID, grade: Int, pagination: PaginationInput): [SchoolBox]\n\n  schoolBox(id: ID!): SchoolBox\n  \"\"\"\n  Get all shopify webhooks\n  \"\"\"\n  getShopifyWebhooks: [ShopifyWebhook]\n\n  \"\"\"\n  Get all Delivery Zones\n  \"\"\"\n  getDeliveryZones: [DeliveryZone]\n\n  \"\"\"\n  Get Delivery Zone\n  \"\"\"\n  getDeliveryZone(id: ID!): DeliveryZone\n  \"\"\"\n  Available chat users\n  \"\"\"\n  availableChatContactsEstore(page: Int, pageSize: Int): [Account!]\n  \"\"\"\n  Active chat sessions.\n  To display on the messages view. Pass `page` to paginate.\n  Returns 20 sessions per page.\n  \"\"\"\n  activeChatSessionsEstore(page: Int): [ChatSession!]\n  \"\"\"\n  Get unread messages\n  \"\"\"\n  unreadMessagesEstore: [Message!]\n  \"\"\"\n  Get conversation.\n  Pass `id` which is the user id to converse with, and `page` to paginate\n  \"\"\"\n  userConversationEstore(id: ID!, page: Int): [Message!]\n\n  \"\"\"\n  Get ai conversations\n  \"\"\"\n  aiAssistantConversations: [Message!]\n\n  \"\"\"\n  AI conversation messages\n  \"\"\"\n  conversationMessages(id: ID!): [Message!]!\n}\n\n# scalar JSON\nscalar DateTime\nscalar Number\nscalar Upload\nscalar BigInt\n\ntype Error @key(fields: \"message\") {\n  field: String!\n  message: String!\n}\ninput ProductFilterInput {\n  status: ProductStatus\n  schoolId: ID\n}\ntype ApiResponse @key(fields: \"message\") {\n  message: String\n  error: Error\n  success: Boolean\n  id: ID # to be used whenever mutation created an object\n}\ntype SignupResponse @key(fields: \"id\") {\n  message: String\n  error: Error\n  success: Boolean\n  id: ID # to be used whenever mutation created an object\n  payload: TokenPayload\n  user: Account\n}\ntype DigitalContent {\n  id: String\n  name: String\n  thumbnailUrl: String\n  linksInJSON: [ProductLinkType]\n  link: String\n  links: [String]\n  uniqueCode: String\n  iv: String\n  licence: String\n  shoppifyOrderId: String\n  owner: Account\n  ownerId: String\n  expiryDate: DateTime\n  createdAt: DateTime\n  updatedAt: DateTime\n  provider: DigitalContentProvider\n}\nextend type Account @key(fields: \"id\") {\n  id: ID\n  name: String\n  phone: String\n  email: String\n  ifunzaId: String\n  idNumber: Number\n  createdAt: DateTime\n  updatedAt: DateTime\n  avatar: Attachment\n  address: UserAddress\n  role: Role\n  referalCode: String\n}\nextend type BankAccount @key(fields: \"id\") {\n  id: String\n  bank: String\n  beankCode: String\n  accountNumber: String\n  accountName: String\n  store: Store\n  storeId: ID\n  createdAt: DateTime\n  updatedAt: DateTime\n}\n\nextend type ShortCode @key(fields: \"id\") {\n  id: ID\n}\nextend type Notification @key(fields: \"id\") {\n  id: ID\n  title: String\n  ref: String\n  read: Boolean\n  userId: String\n  message: String\n  type: String\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype Vendor @key(fields: \"id\") {\n  id: ID\n  name: String\n  vendorStats: VendorStats\n  phone: String\n  email: String\n  ifunzaId: String\n  idNumber: Number\n  createdAt: DateTime\n  updatedAt: DateTime\n  avatar: Attachment\n  address: UserAddress\n  status: UserAccountStatus\n  role: Role\n}\ntype PotentialSchool {\n  id: ID\n  schoolName: String\n  schoolLevel: SCHOOLLEVEL\n  schoolType: SCHOOLTYPE\n  hasTransactions: Boolean\n  county: String\n  email: String\n  phone: String\n  district: String\n  zone: String\n  subCounty: String\n  ward: String\n  xCoordinate: Float\n  yCoordinate: Float\n  user: Account\n  bankAccounts: [BankAccount]\n}\ntype PaginatedPotentialSchools @key(fields: \"currentPage\") {\n  schools: [PotentialSchool]\n  isFirstPage: Boolean\n  isLastPage: Boolean\n  previousPage: Int\n  nextPage: Int\n  totalPages: Int\n  currentPage: Int\n  totalSchools: Int\n}\ntype VendorDashboardStats {\n  totalOrders: Int\n  totalPendingOrders: Int\n  totalPlacedOrders: Int\n  totalFulfilledOrders: Int\n  totalProcessingOrders: Int\n  totalShippedOrders: Int\n  totalCancelledOrders: Int\n  totalTransactions: Float\n  totalCustomers: Int\n  totalAbandonedCarts: Int\n  revenueStats: [DateStat]\n  customerStats: [DateStat]\n  ordersStats: [DateStat]\n}\ntype Transaction {\n  id: ID\n  transactionId: String\n  commissionAmount: Float\n  date: DateTime\n  amount: Float\n  payment: Payment\n  paymentId: String\n  store: Store\n  storeId: ID\n  payout: Payout\n  payoutId: ID\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype DateStat {\n  date: DateTime\n  value: Float\n}\ntype ValueStat {\n  name: String\n  value: Float\n}\ntype VendorTransactionBreakdown {\n  value: Float\n  stats: [ValueStat]\n}\ninput TransactionsFilter {\n  startDate: DateTime\n  endDate: DateTime\n  schoolId: ID\n}\n\ntype VendorStats @key(fields: \"totalOrders\") {\n  totalProducts: Int\n  totalOrders: Int\n  totalStores: Float\n  totalCustomers: Int\n}\ntype Customers {\n  customer: Account\n  store: Store\n}\ntype PaginatedCustomers @key(fields: \"currentPage\") {\n  customers: [Customers]\n  isFirstPage: Boolean\n  isLastPage: Boolean\n  previousPage: Int\n  nextPage: Int\n  totalPages: Int\n  currentPage: Int\n  totalCustomers: Int\n}\ntype PaginatedVendors @key(fields: \"currentPage\") {\n  vendors: [Account]\n  isFirstPage: Boolean\n  isLastPage: Boolean\n  previousPage: Int\n  nextPage: Int\n  totalPages: Int\n  currentPage: Int\n  totalVendors: Int\n}\n\nextend type Attachment @key(fields: \"id\") {\n  id: ID\n  file: String\n  mime: String\n  encoding: String\n  filename: String\n  createdat: DateTime\n  updatedat: DateTime\n}\ntype TokenPayload @key(fields: \"token\") {\n  token: String\n}\ntype SignInEstoreResponse @key(fields: \"message\") {\n  message: String\n  user: Account\n  error: Error\n  payload: TokenPayload\n  vendorSetup: Boolean\n}\ntype UpdatePasswordResonse {\n  response: ApiResponse\n  user: Account\n  token: String\n}\ntype ProductCategory @key(fields: \"id\") {\n  id: ID\n  categoryName: String\n  categoryDescription: String\n  categoryImage: Attachment\n  productsCount: Int\n  createdAt: DateTime\n  updatedAt: DateTime\n  createdBy: String\n}\nextend type ChatSession @key(fields: \"sender\") {\n  id: ID!\n  sender: String\n  unread: Boolean\n  message: Message\n  recipient: Account\n  unreadCount: Number\n}\n\nextend type PrintablePDFResponse @key(fields: \"file\") {\n  file: String\n  error: Error\n}\nextend type Message @key(fields: \"id\") {\n  id: ID\n  message: String\n  sender: Account\n  receiver: Account\n  createdat: DateTime\n  read: Boolean\n  receiverId: ID\n  senderId: ID\n}\n# end of type definitions\n# beginning of input type definitions\n\ninput SignInInputEstore {\n  value: String!\n  password: String!\n}\n\ninput CreateStoreInput {\n  name: String!\n  description: String\n  address: String!\n  category: [StoreCategory!]!\n  city: String!\n  country: String\n  region: String!\n  fulfilmentMethod: FULFILLEMENT_METHOD!\n  latitude: Float\n  longitude: Float\n  logo: AttachmentInput\n}\n\ninput UpdateStoreInput {\n  name: String\n  description: String\n  address: String\n  category: [StoreCategory]\n  city: String\n  country: String\n  region: String\n  latitude: Float\n  longitude: Float\n  fulfilmentMethod: FULFILLEMENT_METHOD!\n  logo: AttachmentInput\n  contactEmail: String\n  contactPhone: String\n  storeCommission: Float\n}\n\ninput CreateProductInput {\n  name: String!\n  expiryDays: Int\n  shopifyProductId: String\n  description: String\n  productType: ProductType!\n  showStockWithTextOnly: Boolean\n  showStockQuantity: Boolean\n  hideStock: Boolean\n  tax: Float\n  taxType: ProductTaxType\n  youtubeUrl: String\n  minimumPurchase: Number\n  cashOnDelivery: Boolean\n  lowStockWarning: Number\n  productCondition: ProductCondition!\n  brand: String\n  unit: String\n  barcode: String\n  shippingDays: Int\n  tags: [String]\n  seo: ProductSEOInput\n  status: ProductStatus\n  images: [AttachmentInput]\n  contentDigital: [AttachmentInput]\n  thumbnail: AttachmentInput\n  pdfSpecification: [AttachmentInput]\n  variants: [CreateVariantInput!]!\n  productDiscount: DiscountInput\n  productLink: [ProductLinkInput!]\n}\ninput ProductLinkInput {\n  link: String!\n  filename: String!\n  fileType: FileType!\n}\ntype ProductLinkType {\n  link: String\n  filename: String\n  fileType: FileType\n}\ninput BulkCreateProductInput {\n  csvUploadFile: AttachmentInput!\n  storeId: ID!\n  categoryId: ID!\n}\ninput CreateVariantInput {\n  price: Number!\n  stock: Number!\n  sku: String\n  color: String\n  size: String\n  images: [AttachmentInput]\n}\ninput UpdateVariantInput {\n  id: String!\n  price: Number!\n  stock: Number!\n  sku: String\n  color: String\n  size: String\n  images: [AttachmentInput]\n}\ninput UpdateProductStatusInput {\n  productId: String!\n  status: ProductStatus!\n}\ninput CreateCategoryInput {\n  categoryImage: AttachmentInput\n  title: String\n  description: String\n}\ninput UpdateProductInput {\n  name: String\n  description: String\n  categoryId: String\n  expiryDays: Int\n  contentDigital: [AttachmentInput]\n  productLink: [ProductLinkInput!]\n  productType: ProductType\n  showStockWithTextOnly: Boolean\n  showStockQuantity: Boolean\n  hideStock: Boolean\n  tax: Float\n  taxType: ProductTaxType\n  youtubeUrl: String\n  minimumPurchase: Number\n  cashOnDelivery: Boolean\n  lowStockWarning: Number\n  productCondition: ProductCondition\n  brand: String\n  unit: String\n  barcode: String\n  shippingDays: Int\n  tags: [String]\n  seo: ProductSEOInput\n  status: ProductStatus\n  images: [AttachmentInput]\n  thumbnail: AttachmentInput\n  pdfSpecification: [AttachmentInput]\n  variants: [UpdateVariantInput!]\n  productDiscount: DiscountInput\n}\ntype PaginatedCategory @key(fields: \"totalPages\") {\n  isFirstPage: Boolean\n  isLastPage: Boolean\n  previousPage: Int\n  nextPage: Int\n  totalPages: Int\n  currentPage: Int\n  totalCategories: Int\n  categories: [ProductCategory]\n}\ntype Cart @key(fields: \"id\") {\n  id: String\n  cartProducts: [cartProducts]\n  cartStatus: CartStatus\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype cartProducts @key(fields: \"id\") {\n  id: String\n  quantity: Int\n  productVariant: ProductVariant\n  createdAt: DateTime\n  updatedAt: DateTime\n}\n\ninput updateOrderStatusInput {\n  orderId: String!\n  orderStatus: OrderStatus!\n}\n\ntype PaginatedProducts @key(fields: \"currentPage\") {\n  products: [Product]\n  isFirstPage: Boolean\n  isLastPage: Boolean\n  previousPage: Int\n  nextPage: Int\n  totalPages: Int\n  currentPage: Int\n  totalProducts: Int\n}\ntype PaginatedOrders @key(fields: \"currentPage\") {\n  orders: [Order]\n  isFirstPage: Boolean\n  isLastPage: Boolean\n  previousPage: Int\n  nextPage: Int\n  totalPages: Int\n  currentPage: Int\n  totalOrders: Int\n}\n\ntype Order @key(fields: \"id\") {\n  id: String\n  items: [OrderItem]\n  orderUniqueCode: String\n  paymentMethod: PaymentMethod\n  city: String\n  buyer: Account\n  status: OrderStatus\n  orderStatus: [OrderStatuses]\n  address: UserAddress\n  paymentStatus: PaymentStatus\n  deliveryStatus: DeliveryStatus\n  deliveryFee: Float\n  deliveryDate: DateTime\n  deliveryTime: String\n  orderTotal: Float\n  deliveryNote: String\n  payment: Payment\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype OrderItem @key(fields: \"id\") {\n  id: String\n  productVariant: ProductVariant\n  quantity: Int\n  totalprice: Float\n  createdAt: DateTime\n  updatedAt: DateTime\n}\n\ntype ProductBox {\n  quantity: Int\n  id: ID\n  product: Product\n}\n\ntype Product @key(fields: \"id\") {\n  id: String\n  name: String\n  expiryDays: Int\n  description: String\n  contentDigital: [Attachment]\n  productLinks: [ProductLinkType]\n  productType: ProductType\n  cashOnDelivery: Boolean\n  category: ProductCategory\n  youtubeUrl: String\n  minimumPurchase: Number\n  lowStockWarning: Number\n  showStockWithTextOnly: Boolean\n  showStockQuantity: Boolean\n  hideStock: Boolean\n  tax: Float\n  taxType: ProductTaxType\n  shippingDays: Int\n  tags: [String]\n  productCondition: ProductCondition\n  brand: String\n  discount: Discount\n  unit: String\n  productUniqueCode: String\n  productViews: Int\n  totalOrders: Number\n  totalRevenue: Number\n  totalCarts: Number\n  barcode: String\n  seo: ProductSEO\n  status: ProductStatus\n  images: [Attachment]\n  thumbnail: Attachment\n  pdfSpecification: [Attachment]\n  variants: [ProductVariant]\n  createdAt: DateTime\n  updatedAt: DateTime\n  rating: Float\n  reviews: [ProductReview]\n  store: Store\n  isWishlisted: Boolean\n  isFeatured: Boolean\n  sold: Number\n  appProductId: String\n}\n\ntype ProductSEO @key(fields: \"id\") {\n  id: String\n  title: String\n  description: String\n  keywords: [String]\n  metaImage: Attachment\n}\ntype ProductVariant @key(fields: \"id\") {\n  id: String\n  price: Number\n  stock: Number\n  vatRate: Float\n  stockVisibility: StockVisibility\n  sku: String\n  vatIncluded: Boolean\n  color: String\n  size: String\n  images: [Attachment]\n  product: Product\n  createdAt: DateTime\n  updatedAt: DateTime\n}\n\ntype Discount @key(fields: \"id\") {\n  id: String\n  type: DiscountType\n  discount: Float\n  startAt: DateTime\n  endAt: DateTime\n}\ntype Store @key(fields: \"id\") {\n  id: String\n  name: String\n  storeCommission: Float\n  fulfilmentMethod: FULFILLEMENT_METHOD\n  description: String\n  bankAccount: BankAccount\n  mpesaAccount: MpesaAccount\n  logo: Attachment\n  address: StoreAddress\n  products: [Product]\n  category: [StoreCategory]\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype StoreAddress @key(fields: \"id\") {\n  id: String\n  address: String\n  city: String\n  country: String\n  region: String\n  latitude: Float\n  longitude: Float\n}\n\ntype PaginatedProductReviews @key(fields: \"currentPage\") {\n  reviews: [ProductReview]\n  isFirstPage: Boolean\n  isLastPage: Boolean\n  previousPage: Int\n  nextPage: Int\n  totalPages: Int\n  currentPage: Int\n  totalReviews: Int\n}\ntype ProductReview @key(fields: \"id\") {\n  id: String\n  rating: Int\n  user: Account\n  comment: String\n  title: String\n  productId: String\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype UserAddress @key(fields: \"id\") {\n  id: String\n  city: String\n  address: String\n  country: String\n  latitude: Float\n  longitude: Float\n  region: String\n  userId: String\n  contactEmail: String\n  contactPhone: String\n  storeId: String\n  defaultAddress: Boolean\n  createdAt: DateTime\n  updatedAt: DateTime\n  firstName: String\n  lastName: String\n  deliveryFee: Float\n}\ntype OrderStatuses {\n  id: ID\n  status: OrderStatus\n  order: Order\n  orderId: String\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype Payment @key(fields: \"id\") {\n  id: ID\n  transactionId: String\n  status: TransactionStatus\n  transactionAmount: Float\n  transactionMode: PaymentMethod\n  transactionDate: DateTime\n  order: Order\n  orderId: String\n  checkoutRequestId: String\n  merchantRequestId: String\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype Promo {\n  id: ID!\n  name: String\n  description: String\n  type: DiscountType\n  value: Float\n  promo: String\n  startDate: DateTime\n  endDate: DateTime\n  bannerImage: Attachment\n  createdAt: DateTime\n  updatedAt: DateTime\n  products: Number\n}\ntype DeliveryPricing {\n  pickup: Float\n  lastmile: Float\n}\n\ntype EmailVerificationResponse {\n  server: AuthenticationServer\n  registred: Boolean\n  roles: [String]\n}\ntype ProductFilterResponse {\n  categories: [ProductCategory]\n  brands: [String]\n  type: [ProductType]\n  condition: [ProductCondition]\n  maxPrice: Float\n  minPrice: Float\n}\ntype ProductWishlist {\n  id: ID\n  productId: ID\n  userId: ID\n  product: Product\n  user: Account\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype Payout @key(fields: \"id\") {\n  id: ID\n  date: DateTime\n  amount: Number\n  payoutId: String\n  channel: VendorPayoutMethod\n  transaction: [Payment]\n  store: Store\n  storeId: ID\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype ProductReviewBreakdown {\n  totalReview: Int\n  averageReview: Float\n  counts: [ReviewCount]\n}\ntype ReviewCount {\n  rating: String\n  count: Int\n}\n# end of type definitions\n# beginning of input type definitions\ninput PaginationInput {\n  page: Int\n  pageSize: Int\n}\ninput SignUpInput {\n  name: String!\n  phone: String\n  email: String\n  ifunzaId: String\n  password: String\n  idNumber: String\n  role: Role!\n  schoolId: String\n  school: SchoolInputEstore\n}\ninput SchoolInputEstore {\n  schoolName: String!\n  schoolLevel: SCHOOLLEVEL!\n  schoolType: SCHOOLTYPE!\n  county: String\n  district: String\n  zone: String\n  subCounty: String\n  ward: String\n  xCoordinate: Float\n  yCoordinate: Float\n}\ninput UpdateUserAccountInput {\n  name: String\n  phone: String\n  email: String\n  password: String\n  idNumber: String\n  role: Role\n  schoolId: String\n  avatar: AttachmentInput\n  address: String\n  city: String\n  country: String\n  region: String\n  latitude: Float\n  longitude: Float\n}\ninput UserAddressInput {\n  address: String!\n  city: String!\n  country: String\n  region: String!\n  latitude: Float\n  longitude: Float\n  defaultAddress: Boolean\n  contactEmail: String\n  contactPhone: String\n  firstName: String\n  lastName: String\n  subZoneId: ID\n}\n\ninput AttachmentInput {\n  link: String\n  mimetype: String\n  filename: String\n  encoding: String\n}\n\ninput ProductVariantInput {\n  variant_colors: [VariantColorsInput]\n  variant_sizes: [VariantSizesInput]\n}\ninput VariantColorsInput {\n  id: String\n  price: Number!\n  stock: Number!\n  sku: String\n  color: String\n  size: String\n  images: [AttachmentInput]\n  variantId: ID\n}\ninput VariantSizesInput {\n  id: String\n  price: Number!\n  stock: Number!\n  sku: String\n  color: String\n  size: String\n  images: [AttachmentInput]\n  variantId: ID\n}\ninput DiscountInput {\n  type: DiscountType!\n  discount: Float!\n  startDate: DateTime!\n  endDate: DateTime!\n}\n\ninput ProductSEOInput {\n  title: String\n  metaDescription: String\n  keywords: [String]\n  metaImage: AttachmentInput\n}\n\ninput CreateOrderInput {\n  paymentMethod: PaymentMethod!\n  deliveryNote: String\n  phone: String\n  otp: String\n  transId: String\n}\ninput ReviewProductInput {\n  rating: Int!\n  comment: String\n  title: String\n  productId: String!\n}\ninput FiltersType {\n  days: Number\n}\ninput UserFilter {\n  school: [ID!]\n  account: [Role!]\n  search: String\n}\n\ninput UpdateCategoryInput {\n  title: String!\n  description: String!\n  thumbnail: AttachmentInput\n}\ninput VendorConfigurationInput {\n  digitalStoresCommission: Float\n  selfFulfillmentCommission: Float\n  ifunzaFulfilledCommission: Float\n  ifunzaPickupCommission: Float\n  storePickupCommission: Float\n  schoolsCommissionRate: Float\n  requireVendorWallets: Boolean\n}\ntype VendorConfigurations @key(fields: \"id\") {\n  id: String\n  digitalStoresCommission: Float\n  selfFulfillmentCommission: Float\n  ifunzaFulfilledCommission: Float\n  ifunzaPickupCommission: Float\n  storePickupCommission: Float\n  schoolsCommissionRate: Float\n  requireVendorWallets: Boolean\n}\ntype OrderReview {\n  product: Product\n  order: Order\n}\n\ntype MpesaAccount {\n  id: ID\n  type: MpesaType\n  shortCode: String\n  registeredName: String\n  store: Store\n  storeId: ID\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ninput ProductFilter {\n  maxPrice: Float\n  minPrice: Float\n  categories: [ID!]\n  brands: [String!]\n  type: [ProductType]\n  condition: [ProductCondition]\n  schoolId: ID\n  rating: Int\n}\ninput SchoolBoxInput {\n  name: String!\n  grade: String!\n  schoolId: ID\n  thumbnail: AttachmentInput\n  description: String!\n}\ntype SchoolBox {\n  id: ID!\n  name: String\n  description: String\n  schoolId: String\n  price: Float\n  grade: String\n  ratings: Float\n  thumbnail: Attachment\n  createdAt: DateTime\n  updatedat: DateTime\n  productsBox: [ProductBox]\n  school: PotentialSchool\n}\ninput ProductBoxInput {\n  productId: ID!\n  quantity: Int\n}\n\ninput PromoInput {\n  name: String!\n  description: String!\n  type: DiscountType!\n  value: Float!\n  promo: String!\n  startDate: DateTime!\n  endDate: DateTime!\n  bannerImage: AttachmentInput!\n}\n\ninput UpdatePromoInput {\n  name: String\n  description: String\n  type: DiscountType\n  value: Float\n  promo: String\n  startDate: DateTime\n  endDate: DateTime\n  bannerImage: AttachmentInput\n}\n\ninput VendorPaymentMode {\n  paymentMode: VendorPayoutMethod\n  bank: BankInput\n  mpesa: MpesaInput\n  store: UpdateStoreInput\n  user: UpdateUserAccountInput\n}\ninput MpesaInput {\n  shortCode: String\n  name: String\n}\ninput BankInput {\n  id: String\n  bank: String\n  accountName: String\n  accountNumber: String\n  bankCode: String\n}\ninput CartProductInput {\n  variantId: ID!\n  quantity: Int!\n}\n\ninput shopifyWebhookInput {\n  address: String!\n  topic: String!\n  format: String\n}\ntype ShopifyWebhook {\n  id: ID\n  address: String\n  topic: String\n  webhookId: String\n  api_version: String\n  format: String\n}\ninput DeliveryZoneInput {\n  name: String!\n  address: UserAddressInput\n  riderName: String\n  riderPhone: String\n  riderEmail: String\n}\ninput UpdateDeliveryZoneInput {\n  name: String\n  addressId: ID\n  address: UserAddressInput\n  riderName: String\n  riderPhone: String\n  riderEmail: String\n  riderId: ID\n}\ninput DeliverySubZoneInput {\n  name: String!\n  price: Float!\n  address: UserAddressInput\n  zoneId: ID!\n}\ninput UpdateDeliverySubZoneInput {\n  name: String\n  price: Float\n  address: UserAddressInput\n  zoneId: ID\n}\ntype DeliveryZone {\n  id: ID\n  name: String\n  address: UserAddress\n  subZones: [DeliverySubZone]\n  rider: Account\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ntype DeliverySubZone {\n  id: ID\n  name: String\n  price: Float\n  address: UserAddress\n  zone: DeliveryZone\n  zoneId: ID\n  createdAt: DateTime\n  updatedAt: DateTime\n}\ninput SchoolLeadInput {\n  schoolName: String!\n  schoolLevel: SCHOOLLEVEL!\n  schoolType: SCHOOLTYPE!\n  county: String!\n  email: String\n  phone: String\n  banks: [BankInput!]!\n}\ninput UpdateSchoolLeadInput {\n  schoolName: String\n  schoolLevel: SCHOOLLEVEL\n  schoolType: SCHOOLTYPE\n  county: String\n  email: String\n  phone: String\n  banks: [BankInput]\n}\n\ninput SendMessageInputEstore {\n  to: ID!\n  message: String!\n  sessionId: ID\n}\ntype VendorAccountBalance {\n  balance: Number\n}\n# end of input type definitions\n# beginning of enum definitions\n\nenum Role {\n  SUPER_ADMIN\n  ADMIN\n  USER\n  VENDOR\n  RIDER\n  AGENT\n}\n\nenum UserAccountStatus {\n  ENABLED\n  DISABLED\n  UNVERIFIED\n}\n\nenum ProductType {\n  PHYSICAL\n  DIGITAL\n  DIGITAL_SCHOOL\n  PHYSICAL_SCHOOL\n}\n\nenum ProductCondition {\n  NEW\n  REFURBISHED\n}\n\nenum OrderStatus {\n  PENDING\n  PLACED\n  PROCESSING\n  SHIPPED\n  OUT_FOR_DELIVERY\n  FULFILLED\n  CANCELLED\n  WAITING_REFUND\n  REFUNDED\n  CLOSED\n}\n\nenum PaymentMethod {\n  CASH\n  WALLET\n  CREDIT_CARD\n  DEBIT_CARD\n  MOBILE_MONEY\n}\n\nenum PaymentStatus {\n  PENDING\n  PAID\n  FAILED\n}\n\nenum DeliveryStatus {\n  PENDING\n  DELIVERED\n  FAILED\n}\n\nenum ProductStatus {\n  LIVE\n  DRAFT\n  ARCHIVED\n  PENDING\n  DELETED\n  OUT_OF_STOCK\n}\n\nenum CartStatus {\n  PENDING\n  CHECKED_OUT\n  CANCELLED\n}\n\nenum StockVisibility {\n  HIDEN\n  TEXT_ONLY\n  STOCK_QUANTITY\n}\n\nenum ProductVariantColors {\n  ALICE_BLUE\n  ANTIQUE_WHITE\n  AQUA\n  AQUAMARINE\n}\n\nenum DiscountType {\n  PERCENTAGE\n  AMOUNT\n}\nenum StoreCategory {\n  TEXTBOOKS\n  NOTEBOOKS\n  WRITING_INSTRUMENTS\n  ART_AND_CRAFT_SUPPLIES\n  UNIFORMS\n  EDUCATIONAL_TECHNOLOGY\n  SCHOOL_FURNITURE\n  SCHOOL_APPAREL\n  SCHOOL_MERCHANDISE\n  TEXTBOOK_RENTAL\n  ONLINE_TUTORING\n  EDUCATIONAL_BOOKS\n  SCHOOL_FUNDRAISING\n  EVENT_PLANNING_SUPPLIES\n  SAFETY_AND_SECURITY\n  SCHOOL_SPORTS_GEAR\n  ONLINE_COURSE_MARKETPLACE\n  SCHOOL_FOOD_SERVICES\n  OTHER\n}\nenum ProductTaxType {\n  FLAT\n  PERCENTAGE\n}\nenum TransactionStatus {\n  PENDING\n  FAILED\n  REVERSED\n  SUCCESS\n}\n\nenum AuthenticationServer {\n  LEGACY\n  ESTORE\n}\nenum DigitalContentProvider {\n  MSINGI_PACK\n  IFUNZA_VENDOR\n}\n\nenum VendorPayoutMethod {\n  PAYBILL\n  BANK\n  MPESA\n  BUYGOODS\n  WALLET\n}\nenum SCHOOLLEVEL {\n  PRIMARY\n  SECONDARY\n  TERTIARY\n  UNIVERSITY\n  COLLEGE\n  OTHER\n}\n\nenum SCHOOLTYPE {\n  PRIVATE\n  PUBLIC\n  OTHER\n}\nenum SortOrder {\n  POPULARITY_ASC\n  POPULARITY_DESC\n  CREATEDAT_ASC\n  CREATEDAT_DESC\n  RATINGS_DESC\n  PRICE_DESC\n  PRICE_ASC\n  RATINGS_ASC\n}\nenum Platform {\n  MOBILE\n  WEB\n}\n\nenum MpesaType {\n  PAYBILL\n  MPESA\n  BUYGOODS\n}\nenum FULFILLEMENT_METHOD {\n  IFUNZA_FULFILLED # IFunza will handle all the vendor fulfilment\n  DIGITAL_ONLY # Vendor will only sell digital products\n  SELF_FULFILLED # Vendor handles all fulfillment\n  IFUNZA_STORE_PICKUP # Ifunza partialy fulfills by picking up at vendor store\n  STORE_PICKUP # Customer pickups from the vendor store\n}\n\nenum DELVERY_LOCATION {\n  SCHOOL\n  HOME\n}\nenum FileType {\n  IMAGE\n  PDF\n  VIDEO\n  AUDIO\n  IFRAME\n}\n"}}}