From 4ea4caaa5bf281ec3a1bbec435e2593fee0ea681 Mon Sep 17 00:00:00 2001 From: me Date: Sun, 22 Feb 2026 14:52:03 +0300 Subject: [PATCH] feat: add Card entity and CardStatus enum --- .../com/example/bankcards/entity/Card.java | 75 +++++++++++++++++++ .../example/bankcards/entity/CardStatus.java | 5 ++ 2 files changed, 80 insertions(+) create mode 100644 src/main/java/com/example/bankcards/entity/Card.java create mode 100644 src/main/java/com/example/bankcards/entity/CardStatus.java diff --git a/src/main/java/com/example/bankcards/entity/Card.java b/src/main/java/com/example/bankcards/entity/Card.java new file mode 100644 index 0000000..d601744 --- /dev/null +++ b/src/main/java/com/example/bankcards/entity/Card.java @@ -0,0 +1,75 @@ +package com.example.bankcards.entity; + +@Entity +@Table(name = "cards") +public class Card { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "card_number_encrypted", nullable = false) + private String cardNumberEncrypted; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "owner_id", nullable = false) + private User owner; + + @Column(name = "expiry_date", nullable = false) + private LocalDate expiryDate; + + @Enumerated(EnumType.STRING) + @Column(nullable = false) + private CardStatus status; + + @Column(nullable = false, precision = 19, scale = 2) + private BigDecimal balance; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getCardNumberEncrypted() { + return cardNumberEncrypted; + } + + public void setCardNumberEncrypted(String cardNumberEncrypted) { + this.cardNumberEncrypted = cardNumberEncrypted; + } + + public User getOwner() { + return owner; + } + + public void setOwner(User owner) { + this.owner = owner; + } + + public LocalDate getExpiryDate() { + return expiryDate; + } + + public void setExpiryDate(LocalDate expiryDate) { + this.expiryDate = expiryDate; + } + + public CardStatus getStatus() { + return status; + } + + public void setStatus(CardStatus status) { + this.status = status; + } + + public BigDecimal getBalance() { + return balance; + } + + public void setBalance(BigDecimal balance) { + this.balance = balance; + } +} diff --git a/src/main/java/com/example/bankcards/entity/CardStatus.java b/src/main/java/com/example/bankcards/entity/CardStatus.java new file mode 100644 index 0000000..aba47c8 --- /dev/null +++ b/src/main/java/com/example/bankcards/entity/CardStatus.java @@ -0,0 +1,5 @@ +package com.example.bankcards.entity; + +public enum CardStatus { + ACTIVE, BLOCKED, EXPIRED +}