package com.billpaymentservice.bbps.entites; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @Entity @ToString @Table(name = "payment_channel") public class PaymentChannel { @Id @Column(name = "payment_channel_limit_id") private String paymentChannelLimitId; // Primary key (manual, not auto-generated) @NotBlank(message = "Payment channel is required") @Column(name = "payment_channel", nullable = false) private String paymentChannel; @Min(value = 0, message = "Max limit cannot be negative") @Column(name = "max_limit") private long maxLimit; @Min(value = 0, message = "Min limit cannot be negative") @Column(name = "min_limit") private long minLimit; @Column(name = "support_pending_status") private String supportPendingStatus; // 🔗 Many PaymentChannels belong to one Biller @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "biller_id") private BillerDetails biller; }