diff --git a/src/main/java/com/billpaymentservice/bbps/BbpsApplication.java b/src/main/java/com/billpaymentservice/bbps/BbpsApplication.java index 02073f1..3373de0 100644 --- a/src/main/java/com/billpaymentservice/bbps/BbpsApplication.java +++ b/src/main/java/com/billpaymentservice/bbps/BbpsApplication.java @@ -10,7 +10,7 @@ public class BbpsApplication { public static void main(String[] args) { SpringApplication.run(BbpsApplication.class, args); - + } } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/AdditionalInfoDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/AdditionalInfoDTO.java new file mode 100644 index 0000000..de80cae --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/AdditionalInfoDTO.java @@ -0,0 +1,19 @@ +package com.billpaymentservice.bbps.dto; +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class AdditionalInfoDTO { + @NotBlank(message = "Param Config ID cannot be blank") + private String paramConfigId; + + @NotBlank(message = "Param name cannot be blank") + private String paramName; + + private String dataTypeDAO; + private String dataTypeModel; + private boolean optional; + private boolean visibility; +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/AmountOptionDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/AmountOptionDTO.java new file mode 100644 index 0000000..a13eb04 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/AmountOptionDTO.java @@ -0,0 +1,12 @@ +package com.billpaymentservice.bbps.dto; +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; +import java.util.List; + +@Getter +@Setter +public class AmountOptionDTO{ + private String amountOptionId; // Matches "amountOptionId" from JSON + private List amountBreakupSets; // Reference to BillerResponseParams (only ID, not full entity) +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/BillerDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/BillerDTO.java new file mode 100644 index 0000000..f2c81cd --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/BillerDTO.java @@ -0,0 +1,109 @@ +package com.billpaymentservice.bbps.dto; + +import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) +public class BillerDTO { + + @NotBlank(message = "Biller ID is mandatory") + @Size(min = 14, max = 14, message = "Biller ID must be 14 characters long") + private String billerId; + + @NotBlank(message = "Biller name cannot be blank") + private String billerName; + + @NotBlank(message = "Biller alias name cannot be blank") + private String billerAliasName; + + @NotBlank(message = "Biller category name cannot be blank") + private String billerCategoryName; + + @NotBlank(message = "Biller mode cannot be blank") + private String billerMode; + + private boolean billerAcceptsAdhoc; + + private boolean parentBiller; + + @NotBlank(message = "Parent biller ID cannot be blank") + private String parentBillerId; + + @NotBlank(message = "Biller ownership is required (PSU or Private)") + private String billerOwnerShp; + + @NotBlank(message = "Biller coverage cannot be blank") + private String billerCoverage; + + @NotBlank(message = "Fetch requirement is mandatory") + private String fetchRequirement; + + @NotBlank(message = "Payment amount exactness is required") + private String paymentAmountExactness; + + @NotBlank(message = "Support bill validation is required") + private String supportBillValidation; + + @NotBlank(message = "Effective from date is required") + private String billerEffctvFrom; + + @NotBlank(message = "Effective to date is required") + private String billerEffctvTo; + + private String billerTempDeactivationStart; + + private String billerTempDeactivationEnd; + + @NotBlank(message = "Biller description cannot be blank") + private String billerDescription; + + @NotBlank(message = "Biller response type is required (SINGLE or SELECTIVE)") + private String billerResponseType; + + @NotBlank(message = "Plan MDM requirement cannot be blank") + private String planMDMRequirement; + + @NotBlank(message = "Status must be ACTIVE or INACTIVE") + private String status; + + @NotBlank(message = "Support deemed value is required (Yes/No)") + private String supportDeemed; + + @NotBlank(message = "Support pending status is required (Yes/No)") + private String supportPendingStatus; + + @NotBlank(message = "Biller timeout is required") + private String billerTimeOut; + + private String routeUrl; + + private String upmsEnabled; + + private String clickpayEnabled; + + private String deemedSuccessEnabled; + + private String selectionType; + + // ✅ Nested lists and objects — matching API structure + private List billerPaymentModes; + private List billerPaymentChannels; + private List billerCustomerParams; + + private CustomerParamGroupsDTO customerParamGroups; + private BillerResponseParamsDTO billerResponseParams; + + private List billerAdditionalInfos; + private List billerAdditionalInfoPayments; + + private List interchangeFeeConves; + private List interchangeFees; + + private BillerPlanResponseParamsDTO billerPlanResponseParams; +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/BillerPlanResponseParamsDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/BillerPlanResponseParamsDTO.java new file mode 100644 index 0000000..69c369a --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/BillerPlanResponseParamsDTO.java @@ -0,0 +1,14 @@ +package com.billpaymentservice.bbps.dto; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) +public class BillerPlanResponseParamsDTO { + private String billerPlanResponseId; + private String paramsJson; + private String amountOptionsJson; +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/BillerResponseParamsDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/BillerResponseParamsDTO.java new file mode 100644 index 0000000..7422a85 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/BillerResponseParamsDTO.java @@ -0,0 +1,15 @@ +package com.billpaymentservice.bbps.dto; + +import lombok.Getter; +import lombok.Setter; +import java.util.List; + +@Getter +@Setter +public class BillerResponseParamsDTO { + + private String billerResponseId; + private List params; + private List amountOptions; +} + diff --git a/src/main/java/com/billpaymentservice/bbps/dto/CustomerParamDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/CustomerParamDTO.java new file mode 100644 index 0000000..84fbc7f --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/CustomerParamDTO.java @@ -0,0 +1,28 @@ +package com.billpaymentservice.bbps.dto; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class CustomerParamDTO { + private String paramConfigId; + @NotBlank(message = "Parameter name is required") + private String paramName; + private String dataTypeDAO; + private String dataTypeModel; + private boolean optional; + @Min(0) + private int minLength; + @Min(0) + private int maxLength; + private String regex; + private boolean visibility; + // ✅ List of possible values + private List values; + + +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/CustomerParamGroupsDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/CustomerParamGroupsDTO.java new file mode 100644 index 0000000..6588e8b --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/CustomerParamGroupsDTO.java @@ -0,0 +1,10 @@ +package com.billpaymentservice.bbps.dto; +import lombok.Getter; +import lombok.Setter; +import java.util.List; + +@Getter +@Setter +public class CustomerParamGroupsDTO { + private List groups; +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/GroupDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/GroupDTO.java new file mode 100644 index 0000000..2a6eac4 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/GroupDTO.java @@ -0,0 +1,19 @@ +package com.billpaymentservice.bbps.dto; + +import lombok.Getter; +import lombok.Setter; +import java.util.List; + +@Getter +@Setter +public class GroupDTO { + + private String name; + + private String input; + + private List params; + + // 🔁 Nested child groups + private List groups; +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeConfDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeConfDTO.java new file mode 100644 index 0000000..9093011 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeConfDTO.java @@ -0,0 +1,27 @@ +package com.billpaymentservice.bbps.dto; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) +public class InterchangeFeeConfDTO { + @NotBlank(message = "Interchange Fee Config ID cannot be blank") + private String interChangeFeeConfId; + + private String mti; + private String paymentMode; + private String paymentChannel; + private String responseCode; + + private List fees; + private boolean defaultFee; + private String effctvFrom; + private String effctvTo; +} + diff --git a/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeDTO.java new file mode 100644 index 0000000..548b95e --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeDTO.java @@ -0,0 +1,26 @@ +package com.billpaymentservice.bbps.dto; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) +public class InterchangeFeeDTO { + @NotBlank(message = "Interchange Fee ID cannot be blank") + private String interchangeFeeId; + + @NotBlank(message = "Fee code is mandatory") + private String feeCode; + + private String feeDesc; + private String feeDirection; + + // ✅ One-to-Many relation represented by DTO list + private List interchangeFeeDetails; + +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeDetailDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeDetailDTO.java new file mode 100644 index 0000000..18efe56 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeDetailDTO.java @@ -0,0 +1,23 @@ +package com.billpaymentservice.bbps.dto; + + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class InterchangeFeeDetailDTO { + + private String interchangeFeeDetId; + + private long tranAmtRangeMax; + + private long tranAmtRangeMin; + + private double percentFee; + + private double flatFee; + + private String effctvFrom; + +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/PaymentChannelDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/PaymentChannelDTO.java new file mode 100644 index 0000000..dd8d5f1 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/PaymentChannelDTO.java @@ -0,0 +1,27 @@ +package com.billpaymentservice.bbps.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class PaymentChannelDTO { + private String paymentChannelLimitId; + + @NotBlank(message = "Payment channel is required") + private String paymentChannel; + + @Min(value = 0, message = "Max limit cannot be negative") + private long maxLimit; + + @Min(value = 0, message = "Min limit cannot be negative") + private long minLimit; + + private String supportPendingStatus; +} + + + diff --git a/src/main/java/com/billpaymentservice/bbps/dto/PaymentModeDTO.java b/src/main/java/com/billpaymentservice/bbps/dto/PaymentModeDTO.java new file mode 100644 index 0000000..1f55930 --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/PaymentModeDTO.java @@ -0,0 +1,28 @@ +package com.billpaymentservice.bbps.dto; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import jakarta.validation.constraints.*; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) +public class PaymentModeDTO { + @NotBlank(message = "Payment model limit ID cannot be blank") + private String paymentModelLimitId; + + @NotBlank(message = "Payment mode is mandatory") + private String paymentMode; + + @PositiveOrZero(message = "Max limit must be zero or positive") + private long maxLimit; + + @PositiveOrZero(message = "Min limit must be zero or positive") + private long minLimit; + + @Pattern(regexp = "^(Yes|No)?$", message = "Support pending status must be either 'Yes' or 'No'") + private String supportPendingStatus; + +} diff --git a/src/main/java/com/billpaymentservice/bbps/dto/response/BillerDataResponse.java b/src/main/java/com/billpaymentservice/bbps/dto/response/BillerDataResponse.java index ccd6f8b..647efc8 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/response/BillerDataResponse.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/response/BillerDataResponse.java @@ -1,8 +1,8 @@ package com.billpaymentservice.bbps.dto.response; -import com.billpaymentservice.bbps.dto.BillerDAO; +import com.billpaymentservice.bbps.dto.BillerDTO; import com.billpaymentservice.bbps.dto.GeneralResp; -import com.fasterxml.jackson.annotation.JsonIgnore; +import com.billpaymentservice.bbps.dto.request.BillerDetailRequest; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; @@ -13,7 +13,7 @@ import lombok.Setter; @Setter @JsonIgnoreProperties(ignoreUnknown = true) public class BillerDataResponse { - private BillerDAO billerDAO; + private BillerDTO billerDAO; @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private GeneralResp generalResp; } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/response/CustomParamResp.java b/src/main/java/com/billpaymentservice/bbps/dto/response/CustomParamResp.java index f3f7dca..f57f510 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/response/CustomParamResp.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/response/CustomParamResp.java @@ -4,8 +4,8 @@ import java.util.List; import com.billpaymentservice.bbps.dto.ContactMaster; import com.billpaymentservice.bbps.dto.CustomParam; -import com.billpaymentservice.bbps.dto.CustomerParam; import com.billpaymentservice.bbps.dto.GeneralResp; +import com.billpaymentservice.bbps.entites.CustomerParam; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/billpaymentservice/bbps/dto/AdditionalInfo.java b/src/main/java/com/billpaymentservice/bbps/entites/AdditionalInfo.java similarity index 92% rename from src/main/java/com/billpaymentservice/bbps/dto/AdditionalInfo.java rename to src/main/java/com/billpaymentservice/bbps/entites/AdditionalInfo.java index cee0dcb..c786030 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/AdditionalInfo.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/AdditionalInfo.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; @@ -39,5 +39,5 @@ public class AdditionalInfo { // 🔗 Many AdditionalInfos belong to one Biller @ManyToOne @JoinColumn(name = "biller_id", nullable = false) - private BillerDAO biller; + private BillerDetails biller; } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/AmountOption.java b/src/main/java/com/billpaymentservice/bbps/entites/AmountOption.java similarity index 86% rename from src/main/java/com/billpaymentservice/bbps/dto/AmountOption.java rename to src/main/java/com/billpaymentservice/bbps/entites/AmountOption.java index b020587..1b336d0 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/AmountOption.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/AmountOption.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; @@ -6,6 +6,8 @@ import lombok.Getter; import lombok.Setter; import java.util.List; +import com.billpaymentservice.bbps.entites.BillerResponseParams; + @Entity @Table(name = "amount_option") @Getter diff --git a/src/main/java/com/billpaymentservice/bbps/dto/BillerDAO.java b/src/main/java/com/billpaymentservice/bbps/entites/BillerDetails.java similarity index 98% rename from src/main/java/com/billpaymentservice/bbps/dto/BillerDAO.java rename to src/main/java/com/billpaymentservice/bbps/entites/BillerDetails.java index 6a1f64e..804d110 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/BillerDAO.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/BillerDetails.java @@ -1,9 +1,11 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; import jakarta.validation.constraints.*; import lombok.Getter; import lombok.Setter; +import lombok.ToString; + import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import java.util.List; @@ -11,9 +13,10 @@ import java.util.List; @Getter @Setter @Entity +@ToString @Table(name = "biller_details") @JsonIgnoreProperties(ignoreUnknown = true) -public class BillerDAO { +public class BillerDetails { @Id @Column(name = "biller_id", length = 14, nullable = false, unique = true) diff --git a/src/main/java/com/billpaymentservice/bbps/dto/BillerPlanResponseParams.java b/src/main/java/com/billpaymentservice/bbps/entites/BillerPlanResponseParams.java similarity index 92% rename from src/main/java/com/billpaymentservice/bbps/dto/BillerPlanResponseParams.java rename to src/main/java/com/billpaymentservice/bbps/entites/BillerPlanResponseParams.java index 32a1fc0..b5b8719 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/BillerPlanResponseParams.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/BillerPlanResponseParams.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import java.util.List; @@ -35,6 +35,6 @@ public class BillerPlanResponseParams { // 🔗 Relationship with BillerDAO @OneToOne @JoinColumn(name = "biller_id", nullable = false) - private BillerDAO biller; + private BillerDetails biller; } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/BillerResponseParams.java b/src/main/java/com/billpaymentservice/bbps/entites/BillerResponseParams.java similarity index 93% rename from src/main/java/com/billpaymentservice/bbps/dto/BillerResponseParams.java rename to src/main/java/com/billpaymentservice/bbps/entites/BillerResponseParams.java index aba6893..ee810da 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/BillerResponseParams.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/BillerResponseParams.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; @@ -21,7 +21,7 @@ public class BillerResponseParams { // 🔗 One-to-One Relationship with BillerDAO @OneToOne @JoinColumn(name = "biller_id", nullable = false) - private BillerDAO biller; + private BillerDetails biller; // ✅ Since params and amountOptions are lists of objects, // we can store them as JSON or in a separate table (simplified here using @ElementCollection) diff --git a/src/main/java/com/billpaymentservice/bbps/dto/CustomerParam.java b/src/main/java/com/billpaymentservice/bbps/entites/CustomerParam.java similarity index 94% rename from src/main/java/com/billpaymentservice/bbps/dto/CustomerParam.java rename to src/main/java/com/billpaymentservice/bbps/entites/CustomerParam.java index ba3850f..2bc7877 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/CustomerParam.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/CustomerParam.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; import jakarta.validation.constraints.*; @@ -54,5 +54,5 @@ public class CustomerParam { // 🔗 Many customer parameters belong to one biller @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "biller_id") - private BillerDAO biller; + private BillerDetails biller; } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/CustomerParamGroups.java b/src/main/java/com/billpaymentservice/bbps/entites/CustomerParamGroups.java similarity index 89% rename from src/main/java/com/billpaymentservice/bbps/dto/CustomerParamGroups.java rename to src/main/java/com/billpaymentservice/bbps/entites/CustomerParamGroups.java index 0c77583..c99e01f 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/CustomerParamGroups.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/CustomerParamGroups.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; import lombok.Getter; @@ -20,7 +20,7 @@ public class CustomerParamGroups { // 🔗 One set of groups belongs to one biller @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "biller_id") - private BillerDAO biller; + private BillerDetails biller; // 🔗 One CustomerParamGroups contains multiple Group objects @OneToMany(mappedBy = "customerParamGroups", cascade = CascadeType.ALL, orphanRemoval = true) diff --git a/src/main/java/com/billpaymentservice/bbps/dto/Group.java b/src/main/java/com/billpaymentservice/bbps/entites/Group.java similarity index 96% rename from src/main/java/com/billpaymentservice/bbps/dto/Group.java rename to src/main/java/com/billpaymentservice/bbps/entites/Group.java index d9ea685..455fe70 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/Group.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/Group.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; diff --git a/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFee.java b/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFee.java similarity index 93% rename from src/main/java/com/billpaymentservice/bbps/dto/InterchangeFee.java rename to src/main/java/com/billpaymentservice/bbps/entites/InterchangeFee.java index f56570f..308c752 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFee.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFee.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import java.util.List; @@ -43,5 +43,5 @@ public class InterchangeFee { // 🔗 Many InterchangeFee entries belong to one Biller @ManyToOne @JoinColumn(name = "biller_id", nullable = false) - private BillerDAO biller; + private BillerDetails biller; } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeConf.java b/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFeeConf.java similarity index 95% rename from src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeConf.java rename to src/main/java/com/billpaymentservice/bbps/entites/InterchangeFeeConf.java index a69f152..789d8f8 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeConf.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFeeConf.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import java.util.List; @@ -59,5 +59,5 @@ public class InterchangeFeeConf { // 🔗 Many InterchangeFeeConf records belong to one Biller @ManyToOne @JoinColumn(name = "biller_id", nullable = false) - private BillerDAO biller; + private BillerDetails biller; } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeDetail.java b/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFeeDetail.java similarity index 95% rename from src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeDetail.java rename to src/main/java/com/billpaymentservice/bbps/entites/InterchangeFeeDetail.java index b25fcfa..382b2c6 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/InterchangeFeeDetail.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/InterchangeFeeDetail.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/billpaymentservice/bbps/dto/PaymentChannel.java b/src/main/java/com/billpaymentservice/bbps/entites/PaymentChannel.java similarity index 93% rename from src/main/java/com/billpaymentservice/bbps/dto/PaymentChannel.java rename to src/main/java/com/billpaymentservice/bbps/entites/PaymentChannel.java index 0f9a93a..6f5962d 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/PaymentChannel.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/PaymentChannel.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; import jakarta.persistence.*; import jakarta.validation.constraints.*; @@ -35,5 +35,5 @@ public class PaymentChannel { // 🔗 Many PaymentChannels belong to one Biller @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "biller_id") - private BillerDAO biller; + private BillerDetails biller; } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/PaymentMode.java b/src/main/java/com/billpaymentservice/bbps/entites/PaymentMode.java similarity index 93% rename from src/main/java/com/billpaymentservice/bbps/dto/PaymentMode.java rename to src/main/java/com/billpaymentservice/bbps/entites/PaymentMode.java index 5c17269..fce2f76 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/PaymentMode.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/PaymentMode.java @@ -1,4 +1,4 @@ -package com.billpaymentservice.bbps.dto; +package com.billpaymentservice.bbps.entites; @@ -40,6 +40,6 @@ public class PaymentMode { // 🔗 Many-to-One relationship with BillerDAO @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "biller_id", nullable = false) - private BillerDAO biller; + private BillerDetails biller; } diff --git a/src/main/java/com/billpaymentservice/bbps/repository/BillerDataRepository.java b/src/main/java/com/billpaymentservice/bbps/repository/BillerDataRepository.java index c798e17..0a2fe6c 100644 --- a/src/main/java/com/billpaymentservice/bbps/repository/BillerDataRepository.java +++ b/src/main/java/com/billpaymentservice/bbps/repository/BillerDataRepository.java @@ -3,32 +3,13 @@ package com.billpaymentservice.bbps.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; -import com.billpaymentservice.bbps.dto.BillerDAO; + +import com.billpaymentservice.bbps.entites.BillerDetails; + import java.util.List; @Repository -public interface BillerDataRepository extends JpaRepository { +public interface BillerDataRepository extends JpaRepository { - // ✅ Custom finder methods - - // Find billers by category name - List findByBillerCategoryName(String billerCategoryName); - - // Find all active billers - List findByStatus(String status); - - // Find billers by alias name - BillerDAO findByBillerAliasName(String billerAliasName); - - // Find billers by parent biller ID - List findByParentBillerId(String parentBillerId); - - // Check if a biller exists by name - boolean existsByBillerName(String billerName); - - // Fetch biller by mode (e.g., ONLINE, OFFLINE) - List findByBillerMode(String billerMode); - - // Fetch biller by ownership (PSU / PRIVATE) - List findByBillerOwnerShp(String billerOwnerShp); + } diff --git a/src/main/java/com/billpaymentservice/bbps/serviceImpl/MasterDataServiceImpl.java b/src/main/java/com/billpaymentservice/bbps/serviceImpl/MasterDataServiceImpl.java index 6705379..b73a993 100644 --- a/src/main/java/com/billpaymentservice/bbps/serviceImpl/MasterDataServiceImpl.java +++ b/src/main/java/com/billpaymentservice/bbps/serviceImpl/MasterDataServiceImpl.java @@ -6,6 +6,8 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import org.modelmapper.ModelMapper; +import org.modelmapper.convention.MatchingStrategies; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -13,7 +15,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; -import com.billpaymentservice.bbps.dto.BillerDAO; +import com.billpaymentservice.bbps.dto.BillerDTO; import com.billpaymentservice.bbps.dto.GeneralResp; import com.billpaymentservice.bbps.dto.MasterApiResponse; import com.billpaymentservice.bbps.dto.ResponseModel; @@ -28,6 +30,8 @@ import com.billpaymentservice.bbps.dto.response.CategoryResponse; import com.billpaymentservice.bbps.dto.response.ContactMasterResponse; import com.billpaymentservice.bbps.dto.response.CustomParamResp; import com.billpaymentservice.bbps.entites.BBPSMerchantValidation; +import com.billpaymentservice.bbps.entites.BillPayment; +import com.billpaymentservice.bbps.entites.BillerDetails; import com.billpaymentservice.bbps.exception.AppException; import com.billpaymentservice.bbps.exception.CustomException; import com.billpaymentservice.bbps.repository.BillerDataRepository; @@ -99,16 +103,21 @@ public class MasterDataServiceImpl implements MasterDataService { } BillerDataResponse responseWrapper = objectMapper.convertValue(dataMap, BillerDataResponse.class); - GeneralResp generalResp = responseWrapper.getGeneralResp(); - BillerDAO biller = responseWrapper.getBillerDAO(); + ModelMapper mapper = new ModelMapper(); + mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); + BillerDetails entity = mapper.map(responseWrapper.getBillerDAO(), BillerDetails.class); - if (biller != null) { - LOGGER.info("Saving biller {} to database...", biller.getBillerId()); - billerDataRespository.save(biller); - } else { - LOGGER.warn("No biller found in response to save."); - } + System.out.println(entity); + + if (entity != null) + { + billerDataRespository.save(entity); + } + else { + LOGGER.warn("No biller found in response to save."); + } + ResponseModel responseModel=new ResponseModel( generalResp.getMessage(),