mirror of
https://github.com/google/nomulus.git
synced 2025-05-14 08:27:14 +02:00
Change RESTORE BillingEvents to have 1-year periods
This simplifies calculating the overall invoice by giving RESTORE fees a period equal to the period of the associated RENEW (1 year). Older BillingEvents will not be backfilled, and will have periodYears = null. Invoicing and business both agree this is a valid representation, since RESTORE fees are intrinsically tied to the 1-year RENEW it's associated with. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=188041777
This commit is contained in:
parent
84eab90000
commit
b39e6c0d7e
3 changed files with 5 additions and 2 deletions
|
@ -239,7 +239,6 @@ public final class DomainRestoreRequestFlow implements TransactionalFlow {
|
|||
private OneTime createRenewBillingEvent(
|
||||
HistoryEntry historyEntry, Money renewCost, DateTime now) {
|
||||
return prepareBillingEvent(historyEntry, renewCost, now)
|
||||
.setPeriodYears(1)
|
||||
.setReason(Reason.RENEW)
|
||||
.build();
|
||||
}
|
||||
|
@ -257,6 +256,7 @@ public final class DomainRestoreRequestFlow implements TransactionalFlow {
|
|||
.setClientId(clientId)
|
||||
.setEventTime(now)
|
||||
.setBillingTime(now)
|
||||
.setPeriodYears(1)
|
||||
.setCost(cost)
|
||||
.setParent(historyEntry);
|
||||
}
|
||||
|
|
|
@ -305,10 +305,12 @@ public abstract class BillingEvent extends ImmutableObject
|
|||
Sets.immutableEnumSet(
|
||||
Reason.CREATE,
|
||||
Reason.RENEW,
|
||||
Reason.RESTORE,
|
||||
Reason.TRANSFER);
|
||||
checkState(
|
||||
reasonsWithPeriods.contains(instance.reason) == (instance.periodYears != null),
|
||||
"Period years must be set if and only if reason is CREATE, RENEW, or TRANSFER.");
|
||||
"Period years must be set if and only if reason is "
|
||||
+ "CREATE, RENEW, RESTORE or TRANSFER.");
|
||||
checkState(
|
||||
instance.getFlags().contains(Flag.SYNTHETIC)
|
||||
== (instance.syntheticCreationTime != null),
|
||||
|
|
|
@ -183,6 +183,7 @@ public class DomainRestoreRequestFlowTest
|
|||
.setTargetId("example.tld")
|
||||
.setClientId("TheRegistrar")
|
||||
.setCost(Money.of(USD, 17))
|
||||
.setPeriodYears(1)
|
||||
.setEventTime(clock.nowUtc())
|
||||
.setBillingTime(clock.nowUtc())
|
||||
.setParent(historyEntryDomainRestore)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue