diff --git a/pom.xml b/pom.xml index b453c0b..ffad089 100644 --- a/pom.xml +++ b/pom.xml @@ -36,6 +36,18 @@ test 3.1.2 + + + org.springframework.boot + spring-boot-starter-data-jpa + 3.1.3 + + + + com.microsoft.sqlserver + mssql-jdbc + 12.4.1.jre11 + diff --git a/src/main/java/entities/Categories.java b/src/main/java/entities/Categories.java new file mode 100644 index 0000000..43bda11 --- /dev/null +++ b/src/main/java/entities/Categories.java @@ -0,0 +1,33 @@ +package entities; + +public class Categories { + + public enum ExpenseCategory { + CREDIT, BUY, BUSINESS, ENTERTAINMENT, RESTAURANTS_AND_CAFE, COMMUNAL_PAYMENTS, SUPERMARKET, MISC; + + public String getEffectiveName() { + return Categories.getEffectiveName(this.name()); + } + } + + public enum IncomeCategory { + P2P, SALARY, GIFT, CREDIT, MISC; + + public String getEffectiveName() { + return Categories.getEffectiveName(this.name()); + } + } + + private static String getEffectiveName(String name) { + String[] arr = name.split("_"); + StringBuilder result = new StringBuilder(); + for(String entry : arr) { + String[] entryArr = entry.split(""); + StringBuilder builder = new StringBuilder(entryArr[0]); + for(int i = 1; i < entry.length(); i++) builder.append(entryArr[i].toLowerCase()); + result.append(builder).append(" "); + } + return result.toString(); + } + +} diff --git a/src/main/java/entities/Expense.java b/src/main/java/entities/Expense.java new file mode 100644 index 0000000..c6b2c3b --- /dev/null +++ b/src/main/java/entities/Expense.java @@ -0,0 +1,41 @@ +package entities; + +public class Expense implements IMoneyTransaction { + + private int userId; + private int amount; + private Categories.ExpenseCategory category; + + public Expense(int userId, int amount, Categories.ExpenseCategory category) { + this.userId = userId; + this.amount = amount; + this.category = category; + } + + @Override + public long getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + @Override + public int getAmount() { + return amount; + } + + public void setAmount(int amount) { + this.amount = amount; + } + + @Override + public String getCategory() { + return category.getEffectiveName(); + } + + public void setCategory(Categories.ExpenseCategory category) { + this.category = category; + } +} diff --git a/src/main/java/entities/IMoneyTransaction.java b/src/main/java/entities/IMoneyTransaction.java new file mode 100644 index 0000000..70b92d5 --- /dev/null +++ b/src/main/java/entities/IMoneyTransaction.java @@ -0,0 +1,9 @@ +package entities; + +public interface IMoneyTransaction { + + long getUserId(); + int getAmount(); + String getCategory(); + +} diff --git a/src/main/java/entities/Income.java b/src/main/java/entities/Income.java new file mode 100644 index 0000000..31b5d67 --- /dev/null +++ b/src/main/java/entities/Income.java @@ -0,0 +1,41 @@ +package entities; + +public class Income implements IMoneyTransaction { + + private long userId; + private int amount; + private Categories.IncomeCategory category; + + public Income(long userId, int amount, Categories.IncomeCategory category) { + this.userId = userId; + this.amount = amount; + this.category = category; + } + + @Override + public long getUserId() { + return userId; + } + + @Override + public int getAmount() { + return amount; + } + + @Override + public String getCategory() { + return category.getEffectiveName(); + } + + public void setUserId(long userId) { + this.userId = userId; + } + + public void setAmount(int amount) { + this.amount = amount; + } + + public void setCategory(Categories.IncomeCategory category) { + this.category = category; + } +} diff --git a/src/main/java/entities/Role.java b/src/main/java/entities/Role.java new file mode 100644 index 0000000..258e49e --- /dev/null +++ b/src/main/java/entities/Role.java @@ -0,0 +1,7 @@ +package entities; + +public enum Role { + + UNREGISTERED, REGISTERED, ADMIN; + +} diff --git a/src/main/java/entities/User.java b/src/main/java/entities/User.java new file mode 100644 index 0000000..37f571a --- /dev/null +++ b/src/main/java/entities/User.java @@ -0,0 +1,88 @@ +package entities; + +import java.util.List; + +public class User { + private long id; + private String name, email, login, password; + private Role role; + private List expenses; + private List incomes; + + public User(long id, String name, String email, String login, String password, Role role, List expenses, List incomes) { + this.id = id; + this.name = name; + this.email = email; + this.login = login; + this.password = password; + this.role = role; + this.expenses = expenses; + this.incomes = incomes; + } + + public User() {} + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Role getRole() { + return role; + } + + public void setRole(Role role) { + this.role = role; + } + + public List getExpenses() { + return expenses; + } + + public void setExpenses(List expenses) { + this.expenses = expenses; + } + + public List getIncomes() { + return incomes; + } + + public void setIncomes(List incomes) { + this.incomes = incomes; + } +}