67 lines
1.8 KiB
Java
67 lines
1.8 KiB
Java
package com.billpaymentservice.bbps.entites;
|
|
|
|
import java.util.List;
|
|
|
|
import jakarta.persistence.CollectionTable;
|
|
import jakarta.persistence.Column;
|
|
import jakarta.persistence.ElementCollection;
|
|
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.Table;
|
|
import jakarta.validation.constraints.NotBlank;
|
|
import lombok.Getter;
|
|
import lombok.Setter;
|
|
|
|
@Getter
|
|
@Setter
|
|
@Entity
|
|
@Table(name = "bbps_interchange_fee_conf")
|
|
|
|
public class InterchangeFeeConf extends Auditable {
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
private Long id; // Primary Key for DB table
|
|
|
|
@Column(name = "interchange_fee_conf_id", nullable = false, unique = true)
|
|
private String interChangeFeeConfId;
|
|
|
|
@Column(name = "mti")
|
|
private String mti;
|
|
|
|
@Column(name = "payment_mode")
|
|
private String paymentMode;
|
|
|
|
@Column(name = "payment_channel")
|
|
private String paymentChannel;
|
|
|
|
@Column(name = "response_code")
|
|
private String responseCode;
|
|
|
|
// ⚙️ Since 'fees' is a list of simple strings, we use ElementCollection
|
|
@ElementCollection
|
|
@CollectionTable(
|
|
name = "interchange_fee_conf_fees",
|
|
joinColumns = @JoinColumn(name = "interchange_fee_conf_id_fk")
|
|
)
|
|
@Column(name = "fee_value")
|
|
private List<String> fees;
|
|
|
|
@Column(name = "default_fee")
|
|
private boolean defaultFee;
|
|
|
|
@Column(name = "effective_from")
|
|
private String effctvFrom;
|
|
|
|
@Column(name = "effective_to")
|
|
private String effctvTo;
|
|
|
|
// 🔗 Many InterchangeFeeConf records belong to one Biller
|
|
@ManyToOne
|
|
@JoinColumn(name = "biller_id", nullable = false)
|
|
private BillerDetails biller;
|
|
} |