diff --git a/src/index.js b/src/index.js index ac593f4..3fc129e 100644 --- a/src/index.js +++ b/src/index.js @@ -1,11 +1,56 @@ // Entry -class Entry {} +class Entry { + constructor(date, amount, description) { + this.date = date; + this.amount = amount; + this.description = description; + } + getFormattedAmount() { + return `${this.amount} €`; + } +} // Income -class Income {} +class Income extends Entry { + constructor(date, amount, description) { + super(date, amount, description); + this.type = "income"; + } +} // Expense -class Expense {} +class Expense extends Entry { + constructor(date, amount, description, paid) { + super(date, amount, description); + this.paid = paid; + this.type = "expense"; + } + getFormattedAmount() { + return `-${this.amount} €`; + } +} // Budget -class Budget {} +class Budget { + constructor() { + this.entries = []; + } + addEntry(entry) { + this.entries.push(entry); + } + getCurrentBalance() { + if (this.entries.length === 0) { + return 0; + } + let total = 0; + for (let i = 0; i < this.entries.length; i++) { + let amounts = this.entries[i]; + if (amounts.type === "income") { + total += amounts.amount; + } else if (amounts.type === "expense") { + total -= amounts.amount; + } + } + return total; + } +}