chromium/components/autofill/core/browser/data_model/credit_card_benefit.h

// Copyright 2024 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_AUTOFILL_CORE_BROWSER_DATA_MODEL_CREDIT_CARD_BENEFIT_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_DATA_MODEL_CREDIT_CARD_BENEFIT_H_

#include <string>

#include "base/containers/flat_set.h"
#include "base/time/time.h"
#include "base/types/id_type.h"
#include "base/types/strong_alias.h"
#include "third_party/abseil-cpp/absl/types/variant.h"
#include "url/origin.h"

namespace autofill {

class CreditCardFlatRateBenefit;
class CreditCardCategoryBenefit;
class CreditCardMerchantBenefit;

// An object that stores card benefit information, i.e., a credit-card-linked
// benefit that users receive when making an online purchase.
CreditCardBenefit;

class CreditCardBenefitBase {};

// Credit-card-linked benefit that is available to users on any online
// purchases.
class CreditCardFlatRateBenefit : public CreditCardBenefitBase {};

// Credit-card-linked benefit that users receive when making an online purchases
// in specific shopping categories. For example, a benefit the user will receive
// for purchasing a subscription service online with the linked card.
class CreditCardCategoryBenefit : public CreditCardBenefitBase {};

// Credit-card-linked benefit that users receive when purchasing from specific
// merchant websites.
class CreditCardMerchantBenefit : public CreditCardBenefitBase {};

}  // namespace autofill

#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_DATA_MODEL_CREDIT_CARD_BENEFIT_H_