package com.billpaymentservice.bbps.entites; import java.util.List; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @Entity @ToString @Table(name = "bbps_interchange_fee") public class InterchangeFee extends Auditable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // Primary key @Column(name = "interchange_fee_id", nullable = false, unique = true) private String interchangeFeeId; @Column(name = "fee_code", nullable = false) private String feeCode; @Column(name = "fee_description") private String feeDesc; @Column(name = "fee_direction") private String feeDirection; // ✅ Relationship with InterchangeFeeDetail (One-to-Many) @OneToMany(mappedBy = "interchangeFee", cascade = CascadeType.ALL, orphanRemoval = true) private List interchangeFeeDetails; // 🔗 Many InterchangeFee entries belong to one Biller @ManyToOne @JoinColumn(name = "biller_id", nullable = false) private BillerDetails biller; }