mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 07:57:13 +02:00
Add billing account map to Registrar entity
A CurrencyUnit-to-BillingAccountEntry map is persisted in the Registrar entity. It provides flexibility for billing systems that assign different account ids for accounts under different currencies of the same registrar. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=151022753
This commit is contained in:
parent
ab9b7c613d
commit
d7e2009ddf
8 changed files with 225 additions and 39 deletions
|
@ -32,6 +32,7 @@ import google.registry.model.billing.RegistrarBillingUtils;
|
|||
import google.registry.model.registrar.Registrar;
|
||||
import google.registry.model.registrar.Registrar.BillingMethod;
|
||||
import google.registry.model.registrar.RegistrarAddress;
|
||||
import google.registry.tools.params.KeyValueMapParameter.CurrencyUnitToStringMap;
|
||||
import google.registry.tools.params.OptionalLongParameter;
|
||||
import google.registry.tools.params.OptionalPhoneNumberParameter;
|
||||
import google.registry.tools.params.OptionalStringParameter;
|
||||
|
@ -169,6 +170,18 @@ abstract class CreateOrUpdateRegistrarCommand extends MutatingCommand {
|
|||
validateWith = OptionalLongParameter.class)
|
||||
private Optional<Long> billingId;
|
||||
|
||||
@Nullable
|
||||
@Parameter(
|
||||
names = "--billing_account_map",
|
||||
description =
|
||||
"Registrar Billing Account key-value pairs (formatted as key=value[,key=value...]), "
|
||||
+ "where key is a currency unit (USD, JPY, etc) and value is the registrar's billing "
|
||||
+ "account id for that currency.",
|
||||
converter = CurrencyUnitToStringMap.class,
|
||||
validateWith = CurrencyUnitToStringMap.class
|
||||
)
|
||||
private Map<CurrencyUnit, String> billingAccountMap;
|
||||
|
||||
@Nullable
|
||||
@Parameter(
|
||||
names = "--billing_method",
|
||||
|
@ -334,6 +347,9 @@ abstract class CreateOrUpdateRegistrarCommand extends MutatingCommand {
|
|||
if (billingId != null) {
|
||||
builder.setBillingIdentifier(billingId.orNull());
|
||||
}
|
||||
if (billingAccountMap != null) {
|
||||
builder.setBillingAccountMap(billingAccountMap);
|
||||
}
|
||||
if (billingMethod != null) {
|
||||
if (oldRegistrar != null && !billingMethod.equals(oldRegistrar.getBillingMethod())) {
|
||||
Map<CurrencyUnit, Money> balances = RegistrarBillingUtils.loadBalance(oldRegistrar);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue