// Copyright 2013 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_PAYMENTS_PAYMENTS_SERVICE_URL_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_SERVICE_URL_H_

#include <stddef.h>
#include <stdint.h>


#include "components/autofill/core/browser/data_model/payments/bnpl_issuer.h"

class GURL;

namespace url {
class Origin;
}

namespace autofill::payments {

// Returns true if production Payments URLs should be used or false if sandbox
// should be used.
bool IsPaymentsProductionEnabled();

// Returns the base URL to use for calls to Google Payments endpoints.
GURL GetBaseSecureUrl();

// Returns the Origin used by Google Pay's pay.js script
url::Origin GetGooglePayScriptOrigin();

// Returns the URL to navigate to in order to allow the user to update their
// settings, and edit or delete payment instruments (credit cards, passes) or
// addresses, respectively. `GetManageInstrumentsUrl` redirects to the top level
// page that contains a list of instruments while `GetManageInstrumentUrl`
// redirects to the detail page for a particular `instrument_id`.
GURL GetManageSettingsUrl();
GURL GetManageInstrumentsUrl();
GURL GetManageInstrumentUrl(int64_t instrument_id);
GURL GetManagePassesUrl();
GURL GetManageLoyaltyCardsUrl();
GURL GetManageAddressesUrl();

// Returns the support URL for users to learn more about virtual cards during
// the virtual card enrollment bubble.
GURL GetVirtualCardEnrollmentSupportUrl();

// Returns the support URL for the BNPL issuer terms for issuer_id.
GURL GetBnplTermsUrl(BnplIssuer::IssuerId issuer_id);

}  // namespace autofill::payments

#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_SERVICE_URL_H_
