type Query {
    amMostviewedGroups (
        id: Int! @doc(description: "Product|Category ID"),
        position: String @doc(description: "Block Position")
    ): AmMostviewedRelatedRules
    @resolver(class: "Amasty\\MostviewedGraphQl\\Model\\Resolver\\Group"),
    amMostviewedBundlePacks (
        productId: Int @doc(description: "Product ID")
    ): AmMostviewedBundlePacks
    @resolver(class: "Amasty\\MostviewedGraphQl\\Model\\Resolver\\BundlePacks")
}

type AmMostviewedBundlePacks {
    is_top_menu_enabled: Int @doc(description: "Add Bundle Packs Link to Top Menu."),
    is_display_cart_message: Boolean @doc(description: "Display Upsell Message in Cart."),
    is_display_cart_block: Boolean @doc(description: "Display Bundle Pack in Cart."),
    main_product: ProductInterface @doc(description: "Main Product."),
    items: [AmMostviewedBundlePack] @doc(description: "An array of bundle packs")
}

type AmMostviewedBundlePack {
    block_title: String @doc(description: "Title."),
    discount_type: Int @doc(description: "Discount Type."),
    discount_amount: Int @doc(description: "Discount Amount."),
    apply_for_parent: Boolean @doc(description: "Apply Discount to the Main Product."),
    cart_message: String @doc(description: "Upsell Message."),
    items: [AmMostviewedBundleItem] @doc(description: "Bundle Pack Items")
}

type AmMostviewedBundleItem {
    product: ProductInterface @doc(description: "Product model."),
    qty: Int @doc(description: "Selected(required) qty."),
    discount_amount: Float @doc(description: "Custom discount")
}

type AmMostviewedRelated {
    block_title: String @doc(description: "Block Title."),
    block_layout: Int @doc(description: "Block Layout."),
    add_to_cart: Boolean @doc(description: "Display 'Add to Cart' Button."),
    position: String @doc(description: "Block Position."),
    items: [ProductInterface] @doc(description: "An array of products")
}

type AmMostviewedRelatedRules {
    items: [AmMostviewedRelated] @doc(description: "An array of Related Rules")
}
