 1 package buckpal.application.domain.model;
 2
 3 public class Account {
 4
 5   private AccountId id;
 6   private Money baselineBalance;
 7   private ActivityWindow activityWindow;
 8
 9   // Pominięcie konstruktorów i metod typu getter
10
11   public static Account withoutId(
12           Money baselineBalance,
13           ActivityWindow activityWindow) {
14     return new Account(null, baselineBalance, activityWindow);
15   }
16
17   public static Account withId(
18           AccountId accountId,
19           Money baselineBalance,
20           ActivityWindow activityWindow) {
21     return new Account(accountId, baselineBalance, activityWindow);
22   }
23
24   public Money calculateBalance() {
25     // ...
26   }
27
28   public boolean withdraw(Money money, AccountId targetAccountId) {
29     // ...
30   }
31
32   public boolean deposit(Money money, AccountId sourceAccountId) {
33     // ...
34   }
35 }
