package com.billpaymentservice.bbps.dto; import java.util.List; import com.billpaymentservice.bbps.entites.AdditionalInfoBillValidate; 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; }