chromium/components/commerce/core/commerce_types.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_COMMERCE_CORE_COMMERCE_TYPES_H_
#define COMPONENTS_COMMERCE_CORE_COMMERCE_TYPES_H_

#include <map>
#include <memory>
#include <optional>
#include <string>
#include <vector>

#include "base/functional/callback.h"
#include "base/time/time.h"
#include "base/tuple.h"
#include "components/commerce/core/proto/parcel.pb.h"
#include "components/commerce/core/proto/product_category.pb.h"
#include "url/gurl.h"

namespace commerce {

// Data containers that are provided by the above callbacks:

// Discount cluster types.
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.commerce.core
enum class DiscountClusterType {};

// Discount types.
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.commerce.core
enum class DiscountType {};

// Information returned by the discount APIs.
struct DiscountInfo {};

// Information returned by the merchant info APIs.
struct MerchantInfo {};

// Position of current price with respect to the typical price range.
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.commerce.core
enum class PriceBucket {};

// Information returned by the price insights APIs.
struct PriceInsightsInfo {};

// Information returned by the product info APIs.
struct ProductInfo {};

// Details about a particular URL.
struct UrlInfo {};

// Information provided by the product specifications backend.
struct ProductSpecifications {};

// Information returned by Parcels API.
struct ParcelTrackingStatus {};

// Class representing the tap strip entry point.
struct EntryPointInfo {};

// Callbacks and typedefs for various accessors in the shopping service.
DiscountInfoCallback;
MerchantInfoCallback;
PriceInsightsInfoCallback;
ProductInfoCallback;
ProductSpecificationsCallback;
IsShoppingPageCallback;
GetParcelStatusCallback;
StopParcelTrackingCallback;
}  // namespace commerce

#endif  // COMPONENTS_COMMERCE_CORE_COMMERCE_TYPES_H_