164 lines
4.8 KiB
Java
164 lines
4.8 KiB
Java
package com.billpaymentservice.bbps.entites;
|
|
|
|
import java.util.List;
|
|
|
|
import com.billpaymentservice.bbps.audit.Auditable;
|
|
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(exclude = {
|
|
"billerPaymentModes",
|
|
"billerPaymentChannels",
|
|
"billerCustomerParams",
|
|
"customerParamGroups",
|
|
"billerResponseParams",
|
|
"billerAdditionalInfos",
|
|
"interchangeFeeConves",
|
|
"interchangeFees",
|
|
"billerPlanResponseParams",
|
|
"billerAdditionalInfoPayments"
|
|
})
|
|
|
|
@Table(name = "bbps_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")
|
|
private String billerName;
|
|
|
|
@Column(name = "biller_alias_name")
|
|
private String billerAliasName;
|
|
|
|
@Column(name = "biller_category_name")
|
|
private String billerCategoryName;
|
|
|
|
@Column(name = "biller_mode")
|
|
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")
|
|
private String billerOwnerShp;
|
|
|
|
@Column(name = "biller_coverage")
|
|
private String billerCoverage;
|
|
|
|
@Column(name = "fetch_requirement")
|
|
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<BillerAdditionalInfoPayment> 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;
|
|
}
|