Untitled
unknown
typescript
2 years ago
1.6 kB
6
Indexable
class Customer {
id: string;
name: string;
address: string;
phoneNumber: string;
accounts: BankAccount[];
}
class BankAccount {
accountNumber: string;
balance: number;
customerId: string;
creditCards: CreditCard[];
deposit(amount: number): void {
this.balance += amount;
}
withdraw(amount: number): void {
if (amount <= this.balance) {
this.balance -= amount;
} else {
throw new Error("Insufficient funds");
}
}
transfer(amount: number, targetAccount: BankAccount): void {
if (amount <= this.balance) {
this.balance -= amount;
targetAccount.deposit(amount);
} else {
throw new Error("Insufficient funds");
}
}
}
class CreditCard {
cardNumber: string;
expirationDate: Date;
balance: number;
accountId: string;
}
class Bank {
name: string;
customers: Customer[];
createAccount(customer: Customer): BankAccount {
const newAccount = new BankAccount();
//... Initialize newAccount with necessary details
customer.accounts.push(newAccount);
this.createCreditCard(newAccount);
return newAccount;
}
createCreditCard(account: BankAccount): CreditCard {
const newCard = new CreditCard();
//... Initialize newCard with necessary details
account.creditCards.push(newCard);
return newCard;
}
reorderCreditCard(account: BankAccount, oldCard: CreditCard): CreditCard {
// Remove old card
const cardIndex = account.creditCards.indexOf(oldCard);
if (cardIndex > -1) {
account.creditCards.splice(cardIndex, 1);
}
// Create new card
return this.createCreditCard(account);
}
}
Editor is loading...