package com.example.bankcards.entity; import jakarta.persistence.*; import java.math.BigDecimal; import java.time.LocalDate; import lombok.*; @Entity @Table(name = "cards") @Data @NoArgsConstructor @AllArgsConstructor @Builder 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; }