Files
bbps-backend/src/main/java/com/billpaymentservice/bbps/entites/BillerDetails.java
T

156 lines
4.8 KiB
Java

package com.billpaymentservice.bbps.entites;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.OneToOne;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@ToString
@Table(name = "biller_details")
@JsonIgnoreProperties(ignoreUnknown = true)
public class BillerDetails {
@Id
@Column(name = "biller_id", length = 14, nullable = false, unique = true)
@NotBlank(message = "Biller ID is mandatory")
@Size(min = 14, max = 14, message = "Biller ID must be 14 characters long")
private String billerId;
@Column(name = "biller_name")
@NotBlank(message = "Biller name cannot be blank")
private String billerName;
@Column(name = "biller_alias_name")
private String billerAliasName;
@Column(name = "biller_category_name", nullable = false)
@NotBlank(message = "Biller category name cannot be blank")
private String billerCategoryName;
@Column(name = "biller_mode")
@NotBlank(message = "Biller mode cannot be blank")
private String billerMode;
@Column(name = "biller_accepts_adhoc")
private boolean billerAcceptsAdhoc;
@Column(name = "parent_biller")
private boolean parentBiller;
@Column(name = "parent_biller_id")
private String parentBillerId;
@Column(name = "biller_ownership")
@NotBlank(message = "Biller ownership is required (PSU or Private)")
private String billerOwnerShp;
@Column(name = "biller_coverage")
private String billerCoverage;
@Column(name = "fetch_requirement")
@NotBlank(message = "Fetch requirement is mandatory")
private String fetchRequirement;
@Column(name = "payment_amount_exactness")
private String paymentAmountExactness;
@Column(name = "support_bill_validation")
private String supportBillValidation;
@Column(name = "biller_effctv_from")
private String billerEffctvFrom;
@Column(name = "biller_effctv_to")
private String billerEffctvTo;
@Column(name = "biller_temp_deactivation_start")
private String billerTempDeactivationStart;
@Column(name = "biller_temp_deactivation_end")
private String billerTempDeactivationEnd;
@Column(name = "biller_description", length = 500)
private String billerDescription;
@Column(name = "biller_response_type")
private String billerResponseType;
@Column(name = "plan_mdm_requirement")
private String planMDMRequirement;
@Column(name = "status")
private String status;
@Column(name = "support_deemed")
private String supportDeemed;
@Column(name = "support_pending_status")
private String supportPendingStatus;
@Column(name = "biller_time_out")
private String billerTimeOut;
@Column(name = "route_url")
private String routeUrl;
@Column(name = "upms_enabled")
private String upmsEnabled;
@Column(name = "clickpay_enabled")
private String clickpayEnabled;
@Column(name = "deemed_success_enabled")
private String deemedSuccessEnabled;
@Column(name = "selection_type")
private String selectionType;
// ✅ Relationships — Each maps to its sub-arrays or objects in API
@OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = true)
private List<PaymentMode> billerPaymentModes;
@OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = true)
private List<PaymentChannel> billerPaymentChannels;
@OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = true)
private List<CustomerParam> billerCustomerParams;
@OneToOne(mappedBy = "biller", cascade = CascadeType.ALL)
private CustomerParamGroups customerParamGroups;
@OneToOne(mappedBy = "biller", cascade = CascadeType.ALL)
private BillerResponseParams billerResponseParams;
@OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = true)
private List<AdditionalInfo> billerAdditionalInfos;
/*
* @OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval =
* true) private List<AdditionalInfo> billerAdditionalInfoPayments;
*/
@OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = true)
private List<InterchangeFeeConf> interchangeFeeConves;
@OneToMany(mappedBy = "biller", cascade = CascadeType.ALL, orphanRemoval = true)
private List<InterchangeFee> interchangeFees;
@OneToOne(mappedBy = "biller", cascade = CascadeType.ALL)
private BillerPlanResponseParams billerPlanResponseParams;
}