Add model classes

This commit is contained in:
2023-05-06 14:35:05 +02:00
parent 54cd17cacb
commit a4be85620f
8 changed files with 124 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
package net.kapcake.bankingservice.domain;
public enum AccountStatus {
ENABLED,
BLOCKED
}

View File

@@ -0,0 +1,20 @@
package net.kapcake.bankingservice.domain;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import lombok.Data;
@Entity
@Data
public class Address {
@Id
@GeneratedValue
private Long id;
private String street;
private Integer number;
private String numberExtension;
private Integer postalCode;
private String country;
}

View File

@@ -0,0 +1,17 @@
package net.kapcake.bankingservice.domain;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import lombok.Data;
@Entity
@Data
public class Balance {
@Id
@GeneratedValue
private Long id;
private Long amount;
private String currency;
private BalanceType type;
}

View File

@@ -0,0 +1,6 @@
package net.kapcake.bankingservice.domain;
public enum BalanceType {
END_OF_DAY,
AVAILABLE
}

View File

@@ -0,0 +1,24 @@
package net.kapcake.bankingservice.domain;
import jakarta.persistence.*;
import lombok.Data;
import java.util.List;
@Entity
@Data
public class BankAccount {
@Id
@GeneratedValue
private Long id;
private String accountNumber;
@ManyToMany
private List<User> users;
private String accountName;
@OneToMany
private List<Balance> balances;
private AccountStatus status;
}

View File

@@ -0,0 +1,26 @@
package net.kapcake.bankingservice.domain;
import jakarta.persistence.*;
import lombok.Data;
import org.hibernate.annotations.CreationTimestamp;
import java.util.Date;
@Entity
@Data
public class Payment {
@Id
@GeneratedValue
private Long id;
private Long amount;
private String currency;
@ManyToOne
private BankAccount giver;
private String beneficiaryAccountNumber;
private String beneficiaryName;
private String communication;
@CreationTimestamp
@Temporal(TemporalType.TIMESTAMP)
private Date creationDate;
private PaymentStatus status;
}

View File

@@ -0,0 +1,5 @@
package net.kapcake.bankingservice.domain;
public enum PaymentStatus {
EXECUTED
}

View File

@@ -0,0 +1,20 @@
package net.kapcake.bankingservice.domain;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
import lombok.Data;
@Entity
@Data
public class User {
@Id
@GeneratedValue
private Long id;
private String username;
private String password;
@ManyToOne
private Address address;
}