Skip to content

Commit

Permalink
feat: P4ADEV-1976 new field debtPositionOrigin and syncStatus (#32)
Browse files Browse the repository at this point in the history
  • Loading branch information
RiccardoGiuliani authored Jan 27, 2025
1 parent 47867e3 commit 92e75a4
Show file tree
Hide file tree
Showing 11 changed files with 552 additions and 446 deletions.
805 changes: 425 additions & 380 deletions openapi/generated.openapi.json

Large diffs are not rendered by default.

23 changes: 23 additions & 0 deletions openapi/p4pa-debt-position.openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,8 @@ components:
type: string
status:
$ref: "#/components/schemas/DebtPositionStatus"
debtPositionOrigin:
$ref: "#/components/schemas/DebtPositionOrigin"
ingestionFlowFileId:
type: integer
format: int64
Expand Down Expand Up @@ -257,6 +259,8 @@ components:
format: int64
status:
$ref: "#/components/schemas/InstallmentStatus"
syncStatus:
$ref: "#/components/schemas/InstallmentSyncStatus"
iupdPagopa:
type: string
iud:
Expand Down Expand Up @@ -468,6 +472,15 @@ components:
- EXPIRED
- UNPAID
- DRAFT
DebtPositionOrigin:
type: string
enum:
- ORDINARY
- SPONTANEOUS
- SECONDARY_ORG
- RECEIPT_FILE
- RECEIPT_PAGOPA
- REPORTING_PAGOPA
PaymentOptionStatus:
type: string
enum:
Expand Down Expand Up @@ -502,6 +515,16 @@ components:
$ref: "#/components/schemas/InstallmentStatus"
iupdPagopa:
type: string
InstallmentSyncStatus:
required:
- syncStatusFrom
- syncStatusTo
type: object
properties:
syncStatusFrom:
type: string
syncStatusTo:
type: string
DebtPositionErrorDTO:
type: object
required:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.fasterxml.jackson.annotation.JsonIgnore;
import it.gov.pagopa.pu.debtpositions.dto.generated.InstallmentStatus;
import it.gov.pagopa.pu.debtpositions.dto.generated.InstallmentSyncStatus;
import it.gov.pagopa.pu.debtpositions.model.InstallmentNoPII;
import it.gov.pagopa.pu.debtpositions.model.Transfer;
import lombok.AllArgsConstructor;
Expand All @@ -22,6 +23,7 @@ public class Installment {
private Long installmentId;
private Long paymentOptionId;
private InstallmentStatus status;
private InstallmentSyncStatus syncStatus;
private String iupdPagopa;
private String iud;
private String iuv;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public Pair<DebtPosition, Map<InstallmentNoPII, Installment>> mapToModel(DebtPos
debtPosition.setNotificationDate(dto.getNotificationDate());
debtPosition.setValidityDate(dto.getValidityDate());
debtPosition.setFlagIuvVolatile(dto.getFlagIuvVolatile());
debtPosition.setDebtPositionOrigin(dto.getDebtPositionOrigin());
debtPosition.setCreationDate(dto.getCreationDate().toLocalDateTime());
debtPosition.setUpdateDate(dto.getUpdateDate().toLocalDateTime());

Expand Down Expand Up @@ -69,6 +70,7 @@ public DebtPositionDTO mapToDto(DebtPosition debtPosition){
.notificationDate(debtPosition.getNotificationDate())
.validityDate(debtPosition.getValidityDate())
.flagIuvVolatile(debtPosition.isFlagIuvVolatile())
.debtPositionOrigin(debtPosition.getDebtPositionOrigin())
.creationDate(localDatetimeToOffsetDateTime(debtPosition.getCreationDate()))
.updateDate(localDatetimeToOffsetDateTime(debtPosition.getUpdateDate()))
.paymentOptions(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import it.gov.pagopa.pu.debtpositions.dto.Installment;
import it.gov.pagopa.pu.debtpositions.dto.generated.InstallmentDTO;
import it.gov.pagopa.pu.debtpositions.dto.generated.InstallmentSyncStatus;
import it.gov.pagopa.pu.debtpositions.model.InstallmentNoPII;
import org.springframework.stereotype.Service;

Expand All @@ -24,6 +25,7 @@ public Installment mapToModel(InstallmentDTO dto) {
installment.setInstallmentId(dto.getInstallmentId());
installment.setPaymentOptionId(dto.getPaymentOptionId());
installment.setStatus(dto.getStatus());
installment.setSyncStatus(dto.getSyncStatus());
installment.setIupdPagopa(dto.getIupdPagopa());
installment.setIud(dto.getIud());
installment.setIuv(dto.getIuv());
Expand Down Expand Up @@ -52,6 +54,7 @@ public InstallmentDTO mapToDto(InstallmentNoPII installment) {
.installmentId(installment.getInstallmentId())
.paymentOptionId(installment.getPaymentOptionId())
.status(installment.getStatus())
.syncStatus(InstallmentSyncStatus.builder().syncStatusFrom(installment.getSyncStatusFrom()).syncStatusTo(installment.getSyncStatusTo()).build())
.iupdPagopa(installment.getIupdPagopa())
.iud(installment.getIud())
.iuv(installment.getIuv())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,45 +10,47 @@
@Service
public class InstallmentPIIMapper {

private final DataCipherService dataCipherService;

public InstallmentPIIMapper(DataCipherService dataCipherService) {
this.dataCipherService = dataCipherService;
private final DataCipherService dataCipherService;

public InstallmentPIIMapper(DataCipherService dataCipherService) {
this.dataCipherService = dataCipherService;
}

public Pair<InstallmentNoPII, InstallmentPIIDTO> map(Installment installment) {
InstallmentNoPII installmentNoPII = new InstallmentNoPII();

installmentNoPII.setInstallmentId(installment.getInstallmentId());
installmentNoPII.setPaymentOptionId(installment.getPaymentOptionId());
installmentNoPII.setStatus(installment.getStatus());
installmentNoPII.setSyncStatusFrom(installment.getSyncStatus().getSyncStatusFrom());
installmentNoPII.setSyncStatusTo(installment.getSyncStatus().getSyncStatusTo());
installmentNoPII.setIupdPagopa(installment.getIupdPagopa());
installmentNoPII.setIud(installment.getIud());
installmentNoPII.setIuv(installment.getIuv());
installmentNoPII.setIur(installment.getIur());
installmentNoPII.setIuf(installment.getIuf());
installmentNoPII.setNav(installment.getNav());
installmentNoPII.setDueDate(installment.getDueDate());
installmentNoPII.setPaymentTypeCode(installment.getPaymentTypeCode());
installmentNoPII.setAmountCents(installment.getAmountCents());
installmentNoPII.setNotificationFeeCents(installment.getNotificationFeeCents());
installmentNoPII.setRemittanceInformation(installment.getRemittanceInformation());
installmentNoPII.setHumanFriendlyRemittanceInformation(installment.getHumanFriendlyRemittanceInformation());
installmentNoPII.setBalance(installment.getBalance());
installmentNoPII.setLegacyPaymentMetadata(installment.getLegacyPaymentMetadata());
installmentNoPII.setDebtorEntityType(installment.getDebtor().getEntityType().charAt(0));
installmentNoPII.setDebtorFiscalCodeHash(dataCipherService.hash(installment.getDebtor().getFiscalCode()));
installmentNoPII.setCreationDate(installment.getCreationDate());
installmentNoPII.setUpdateDate(installment.getUpdateDate());
installmentNoPII.setUpdateOperatorExternalId(installment.getUpdateOperatorExternalId());

if (installment.getNoPII() != null) {
installmentNoPII.setPersonalDataId(installment.getNoPII().getPersonalDataId());
}

public Pair<InstallmentNoPII, InstallmentPIIDTO> map(Installment installment) {
InstallmentNoPII installmentNoPII = new InstallmentNoPII();

installmentNoPII.setInstallmentId(installment.getInstallmentId());
installmentNoPII.setPaymentOptionId(installment.getPaymentOptionId());
installmentNoPII.setStatus(installment.getStatus());
installmentNoPII.setIupdPagopa(installment.getIupdPagopa());
installmentNoPII.setIud(installment.getIud());
installmentNoPII.setIuv(installment.getIuv());
installmentNoPII.setIur(installment.getIur());
installmentNoPII.setIuf(installment.getIuf());
installmentNoPII.setNav(installment.getNav());
installmentNoPII.setDueDate(installment.getDueDate());
installmentNoPII.setPaymentTypeCode(installment.getPaymentTypeCode());
installmentNoPII.setAmountCents(installment.getAmountCents());
installmentNoPII.setNotificationFeeCents(installment.getNotificationFeeCents());
installmentNoPII.setRemittanceInformation(installment.getRemittanceInformation());
installmentNoPII.setHumanFriendlyRemittanceInformation(installment.getHumanFriendlyRemittanceInformation());
installmentNoPII.setBalance(installment.getBalance());
installmentNoPII.setLegacyPaymentMetadata(installment.getLegacyPaymentMetadata());
installmentNoPII.setDebtorEntityType(installment.getDebtor().getEntityType().charAt(0));
installmentNoPII.setDebtorFiscalCodeHash(dataCipherService.hash(installment.getDebtor().getFiscalCode()));
installmentNoPII.setCreationDate(installment.getCreationDate());
installmentNoPII.setUpdateDate(installment.getUpdateDate());
installmentNoPII.setUpdateOperatorExternalId(installment.getUpdateOperatorExternalId());

if(installment.getNoPII() != null){
installmentNoPII.setPersonalDataId(installment.getNoPII().getPersonalDataId());
}

InstallmentPIIDTO installmentPIIDTO = InstallmentPIIDTO.builder()
.debtor(installment.getDebtor()).build();

return Pair.of(installmentNoPII, installmentPIIDTO);
}
InstallmentPIIDTO installmentPIIDTO = InstallmentPIIDTO.builder()
.debtor(installment.getDebtor()).build();

return Pair.of(installmentNoPII, installmentPIIDTO);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package it.gov.pagopa.pu.debtpositions.model;

import it.gov.pagopa.pu.debtpositions.dto.generated.DebtPositionOrigin;
import it.gov.pagopa.pu.debtpositions.dto.generated.DebtPositionStatus;
import jakarta.persistence.*;
import lombok.*;
Expand All @@ -9,16 +10,16 @@
import java.util.SortedSet;

@NamedEntityGraph(
name = "completeDebtPosition",
attributeNodes = {
@NamedAttributeNode(value = "paymentOptions", subgraph = "subgraph.payment-option")
},
subgraphs = {
@NamedSubgraph(name = "subgraph.payment-option",
attributeNodes = @NamedAttributeNode(value = "installments", subgraph = "subgraph.installment")),
@NamedSubgraph(name = "subgraph.installment",
attributeNodes = @NamedAttributeNode(value = "transfers"))
}
name = "completeDebtPosition",
attributeNodes = {
@NamedAttributeNode(value = "paymentOptions", subgraph = "subgraph.payment-option")
},
subgraphs = {
@NamedSubgraph(name = "subgraph.payment-option",
attributeNodes = @NamedAttributeNode(value = "installments", subgraph = "subgraph.installment")),
@NamedSubgraph(name = "subgraph.installment",
attributeNodes = @NamedAttributeNode(value = "transfers"))
}
)
@Entity
@Table(name = "debt_position")
Expand All @@ -29,22 +30,24 @@
@EqualsAndHashCode(of = "debtPositionId", callSuper = false)
public class DebtPosition extends BaseEntity implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "debt_position_generator")
@SequenceGenerator(name = "debt_position_generator", sequenceName = "debt_position_seq", allocationSize = 1)
private Long debtPositionId;
private String iupdOrg;
private String description;
@Enumerated(EnumType.STRING)
private DebtPositionStatus status;
private Long ingestionFlowFileId;
private Long ingestionFlowFileLineNumber;
private Long organizationId;
private Long debtPositionTypeOrgId;
private OffsetDateTime notificationDate;
private OffsetDateTime validityDate;
private boolean flagIuvVolatile;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "debt_position_generator")
@SequenceGenerator(name = "debt_position_generator", sequenceName = "debt_position_seq", allocationSize = 1)
private Long debtPositionId;
private String iupdOrg;
private String description;
@Enumerated(EnumType.STRING)
private DebtPositionStatus status;
@Enumerated(EnumType.STRING)
private DebtPositionOrigin debtPositionOrigin;
private Long ingestionFlowFileId;
private Long ingestionFlowFileLineNumber;
private Long organizationId;
private Long debtPositionTypeOrgId;
private OffsetDateTime notificationDate;
private OffsetDateTime validityDate;
private boolean flagIuvVolatile;

@OneToMany(mappedBy = "debtPositionId")
private SortedSet<PaymentOption> paymentOptions;
@OneToMany(mappedBy = "debtPositionId")
private SortedSet<PaymentOption> paymentOptions;
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ public class InstallmentNoPII extends BaseEntity implements Serializable, Compar
private Long personalDataId;
private Character debtorEntityType;
private byte[] debtorFiscalCodeHash;
private String syncStatusFrom;
private String syncStatusTo;

@OneToMany(mappedBy = "installmentId")
private SortedSet<Transfer> transfers;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package it.gov.pagopa.pu.debtpositions.util.faker;

import it.gov.pagopa.pu.debtpositions.dto.generated.DebtPositionDTO;
import it.gov.pagopa.pu.debtpositions.dto.generated.DebtPositionOrigin;
import it.gov.pagopa.pu.debtpositions.dto.generated.DebtPositionStatus;
import it.gov.pagopa.pu.debtpositions.model.DebtPosition;

Expand All @@ -23,6 +24,7 @@ public static DebtPosition buildDebtPosition() {
debtPosition.setIupdOrg("IUPD_ORG");
debtPosition.setDescription("Test Description");
debtPosition.setStatus(DebtPositionStatus.TO_SYNC);
debtPosition.setDebtPositionOrigin(DebtPositionOrigin.ORDINARY);
debtPosition.setIngestionFlowFileId(1001L);
debtPosition.setIngestionFlowFileLineNumber(10L);
debtPosition.setOrganizationId(500L);
Expand All @@ -42,6 +44,7 @@ public static DebtPositionDTO buildDebtPositionDTO() {
debtPositionDTO.setIupdOrg("IUPD_ORG");
debtPositionDTO.setDescription("Test Description");
debtPositionDTO.setStatus(DebtPositionStatus.UNPAID);
debtPositionDTO.setDebtPositionOrigin(DebtPositionOrigin.ORDINARY);
debtPositionDTO.setIngestionFlowFileId(1001L);
debtPositionDTO.setIngestionFlowFileLineNumber(10L);
debtPositionDTO.setOrganizationId(500L);
Expand All @@ -61,6 +64,7 @@ public static DebtPositionDTO buildGeneratedIuvDebtPositionDTO() {
debtPositionDTO.setIupdOrg("IUPD_ORG");
debtPositionDTO.setDescription("Test Description");
debtPositionDTO.setStatus(DebtPositionStatus.UNPAID);
debtPositionDTO.setDebtPositionOrigin(DebtPositionOrigin.ORDINARY);
debtPositionDTO.setIngestionFlowFileId(1001L);
debtPositionDTO.setIngestionFlowFileLineNumber(10L);
debtPositionDTO.setOrganizationId(500L);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import java.util.ArrayList;
import java.util.List;

import static it.gov.pagopa.pu.debtpositions.util.faker.InstallmentSyncStatusFaker.buildInstallmentSyncStatus;
import static it.gov.pagopa.pu.debtpositions.util.faker.PersonFaker.buildPerson;
import static it.gov.pagopa.pu.debtpositions.util.faker.PersonFaker.buildPersonDTO;
import static it.gov.pagopa.pu.debtpositions.util.faker.TransferFaker.buildTransfer;
Expand All @@ -27,6 +28,7 @@ public static Installment buildInstallment(){
.installmentId(1L)
.paymentOptionId(1L)
.status(InstallmentStatus.TO_SYNC)
.syncStatus(buildInstallmentSyncStatus())
.iupdPagopa("iupdPagoPa")
.iud("iud")
.iuv("iuv")
Expand Down Expand Up @@ -54,6 +56,8 @@ public static InstallmentNoPII buildInstallmentNoPII(){
.installmentId(1L)
.paymentOptionId(1L)
.status(InstallmentStatus.TO_SYNC)
.syncStatusFrom("syncStatusFrom")
.syncStatusTo("syncStatusTo")
.iupdPagopa("iupdPagoPa")
.iud("iud")
.iuv("iuv")
Expand Down Expand Up @@ -87,6 +91,7 @@ public static Installment buildInstallmentNoUpdate(){
.installmentId(1L)
.paymentOptionId(1L)
.status(InstallmentStatus.TO_SYNC)
.syncStatus(buildInstallmentSyncStatus())
.iupdPagopa("iupdPagoPa")
.iud("iud")
.iuv("iuv")
Expand All @@ -113,6 +118,7 @@ public static InstallmentDTO buildInstallmentDTO() {
.installmentId(1L)
.paymentOptionId(1L)
.status(InstallmentStatus.UNPAID)
.syncStatus(buildInstallmentSyncStatus())
.iupdPagopa("iupdPagoPa")
.iud("iud")
.iuv("iuv")
Expand All @@ -139,6 +145,7 @@ public static InstallmentDTO buildGeneratedIuvInstallmentDTO() {
.installmentId(1L)
.paymentOptionId(1L)
.status(InstallmentStatus.UNPAID)
.syncStatus(buildInstallmentSyncStatus())
.iupdPagopa("iupdPagoPa")
.iud("iud")
.iuv("generatedIuv")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package it.gov.pagopa.pu.debtpositions.util.faker;

import it.gov.pagopa.pu.debtpositions.dto.generated.InstallmentSyncStatus;

public class InstallmentSyncStatusFaker {

public static InstallmentSyncStatus buildInstallmentSyncStatus() {
return InstallmentSyncStatus.builder()
.syncStatusFrom("syncStatusFrom")
.syncStatusTo("syncStatusTo")
.build();
}
}

0 comments on commit 92e75a4

Please sign in to comment.