Enhanced PEC error response saving

This commit is contained in:
Piyush
2025-05-08 19:21:59 +05:30
parent 23ed5df464
commit 385ee2f755
20 changed files with 296 additions and 36 deletions

View File

@@ -2,7 +2,10 @@ package net.gepafin.tendermanagement.entities;
import jakarta.persistence.*;
import lombok.Data;
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
import java.time.LocalDateTime;
import java.util.List;
@Entity
@Table(name="application_amendment_request")
@@ -53,7 +56,10 @@ public class ApplicationAmendmentRequestEntity extends BaseEntity {
@Column(name = "amendment_document")
private String amendmentDocument;
@Column(name = "CLOSING_DATE")
private LocalDateTime closingDate;
@Convert(converter = EmailSendResponseConverter.class)
@Column(name = "EMAIL_SEND_RESPONSE", columnDefinition = "TEXT")
private List<EmailSendResponse> emailSendResponse;
}

View File

@@ -3,9 +3,12 @@ package net.gepafin.tendermanagement.entities;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import net.gepafin.tendermanagement.model.BaseBean;
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
import org.hibernate.annotations.Immutable;
import java.time.LocalDateTime;
import java.util.List;
@Entity
@Immutable
@@ -13,12 +16,12 @@ import java.time.LocalDateTime;
@Getter
@Setter
@IdClass(ApplicationAmendmentRequestViewId.class)
public class ApplicationAmendmentRequestView {
public class ApplicationAmendmentRequestView extends BaseEntity {
@Id
@Column(name = "ID")
private Long id;
// @Id
// @Column(name = "ID")
// private Long id;
@Column(name = "APPLICATION_ID")
private Long applicationId;
@@ -56,12 +59,17 @@ public class ApplicationAmendmentRequestView {
@Column(name = "APPLICATION_USER_ID")
private Long applicationUserId;
@Column(name = "CREATED_DATE")
private String createdDate;
@Column(name = "UPDATED_DATE")
private String updatedDate;
// @Column(name = "CREATED_DATE")
// private String createdDate;
//
// @Column(name = "UPDATED_DATE")
// private String updatedDate;
@Column(name = "IS_DELETED")
private Boolean isDeleted;
@Convert(converter = EmailSendResponseConverter.class)
@Column(name = "EMAIL_SEND_RESPONSE", columnDefinition = "TEXT")
private List<EmailSendResponse> emailSendResponse;
}

View File

@@ -2,8 +2,10 @@ package net.gepafin.tendermanagement.entities;
import jakarta.persistence.*;
import lombok.Data;
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Entity
@@ -71,4 +73,7 @@ public class ApplicationEvaluationEntity extends BaseEntity{
@Column(name = "evaluationVersion")
private String evaluationVersion;
@Convert(converter = EmailSendResponseConverter.class)
@Column(name = "EMAIL_SEND_RESPONSE", columnDefinition = "TEXT")
private List<EmailSendResponse> emailSendResponse;
}

View File

@@ -2,9 +2,11 @@ package net.gepafin.tendermanagement.entities;
import jakarta.persistence.*;
import lombok.Data;
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
import org.hibernate.annotations.Immutable;
import java.time.LocalDateTime;
import java.util.List;
@Entity
@Immutable
@@ -58,4 +60,8 @@ public class AssignedApplicationsView{
@Column(name = "IS_DELETED")
private Boolean isDeleted;
@Convert(converter = EmailSendResponseConverter.class)
@Column(name = "EMAIL_SEND_RESPONSE", columnDefinition = "TEXT")
private List<EmailSendResponse> emailSendResponse;
}

View File

@@ -0,0 +1,40 @@
package net.gepafin.tendermanagement.entities;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Converter;
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
import java.io.IOException;
import java.util.List;
@Converter
public class EmailSendResponseConverter implements AttributeConverter<List<EmailSendResponse>, String> {
private final ObjectMapper objectMapper = new ObjectMapper();
@Override
public String convertToDatabaseColumn(List<EmailSendResponse> attribute) {
try {
return objectMapper.writeValueAsString(attribute);
} catch (JsonProcessingException e) {
throw new IllegalArgumentException("Error converting list to JSON", e);
}
}
@Override
public List<EmailSendResponse> convertToEntityAttribute(String dbData) {
if (dbData == null || dbData.isBlank()) {
return List.of(); // or null if you prefer
}
try {
return objectMapper.readValue(dbData, new TypeReference<List<EmailSendResponse>>() {});
} catch (IOException e) {
throw new IllegalArgumentException("Error reading JSON from database", e);
}
}
}

View File

@@ -7,8 +7,10 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
import java.time.LocalDateTime;
import java.util.List;
@Entity
@Table(name = "GEPAFIN_USER")
@@ -69,4 +71,9 @@ public class UserEntity extends BaseEntity {
@ManyToOne
@JoinColumn(name = "HUB_ID")
private HubEntity hub;
@Convert(converter = EmailSendResponseConverter.class)
@Column(name = "EMAIL_SEND_RESPONSE", columnDefinition = "TEXT")
private List<EmailSendResponse> emailSendResponse;
}