Skip to content

Commit

Permalink
Enhance DTO schemas and validation
Browse files Browse the repository at this point in the history
Removed unnecessary import, added detailed `@Schema` descriptions, and improved validation constraints for multiple fields within the `OppdragRequest` class. Introduced `ValuteType` enum to streamline currency handling.
  • Loading branch information
krharum committed Oct 30, 2024
1 parent bd567a1 commit 83ee526
Showing 1 changed file with 40 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
Expand Down Expand Up @@ -215,10 +214,10 @@ public static class Oppdragslinje {
private String refDelytelseId;
@Schema(maxLength = 5)
private Integer refLinjeId;

private RefusjonsInfo refusjonsInfo;
private List<Tekst> tekst;
@Schema(description = "Fra XSD: Referanse ID 120 dersom enhet på nivå oppdrag og " +
"Referanse ID 160 dersom enhet på nivå oppdragslinje")

private List<Enhet> enhet;
private List<Grad> grad;
private List<Attestant> attestant;
Expand Down Expand Up @@ -269,8 +268,10 @@ public List<Valuta> getValuta() {
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "Entitet for refusjon til et orgnr og/eller maksdato for utbetaling av ytelse, Referanse ID 156")
public static class RefusjonsInfo {

@Schema(description = "Angir fødselsnummer eller organisasjonsnummer på kravhaver", minLength = 9, maxLength = 11)
private String refunderesId;
private LocalDate maksDato;
private LocalDate datoFom;
Expand All @@ -280,21 +281,30 @@ public static class RefusjonsInfo {
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "Entitet Tekst, Referanse ID 140 dersom tekst er tilhørende oppdrag, " +
"Referanse ID 158 dersom tekst er tilhørende oppdragslinje")
public static class Tekst {

private BigInteger tekstLnr;
@NotBlank
@Schema(minLength = 1, maxLength = 2)
private Integer tekstLnr;
@Schema(maxLength = 4)
private String tekstKode;
@Schema
private String tekst;
@NotBlank
private LocalDate datoTekstFom;
private LocalDate datoTekstTom;
@Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1)
private String feilreg;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "Entitet enhet, Referanse ID 120 dersom enhet er på nivå oppdrag, " +
"Referanse ID 160 dersom enhet er på nivå oppdragslinje")
public static class Enhet {

@NotBlank
Expand All @@ -311,21 +321,26 @@ public static class Enhet {
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "Entitet Grad, Referanse ID 170")
public static class Grad {

@NotBlank
@Schema(minLength = 1, maxLength = 4)
protected String typeGrad;
@NotBlank
protected BigInteger grad;
@Schema(description = "Prosentgrad, maks 100")
protected Integer grad;
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "Entitet Attestasjon, Referanse ID 180")
public static class Attestant {

@NotBlank
@Schema(minLength = 1, maxLength = 8)
protected String attestantId;
protected LocalDate datoUgyldigFom;
}
Expand All @@ -334,38 +349,41 @@ public static class Attestant {
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "Entitet Valuta, Referanse ID 190")
public static class Valuta {

@NotBlank
protected String typeValuta;
protected ValuteType typeValuta;
@NotBlank
@Schema(minLength = 1, maxLength = 3)
protected String valuta;
@NotBlank
protected LocalDate datoValutaFom;
@Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1)
protected String feilreg;
}

public enum JaNei {
J,
N;
N
}

public enum KodeStatusLinje {
OPPH,
HVIL,
SPER,
REAK;
REAK
}

public enum FradragTillegg {
F,
T;
T
}

public enum KodeArbeidsgiver {
A,
S,
P;
P
}

public enum KodeStatus {
Expand All @@ -380,7 +398,7 @@ public enum KodeStatus {
FBER,
REAK,
KORR,
FEIL;
FEIL
}

public enum KodeEndring {
Expand Down Expand Up @@ -414,19 +432,30 @@ public enum UtbetalingFrekvensType {
ENG
}

public enum ValuteType {

FAKT,
FRAM,
UTB
}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "Entitet Beløpsgrense, Referanse ID 130")
public static class Belopsgrense {

@NotBlank
@Schema(minLength = 1, maxLength = 4)
private String typeGrense;
@NotBlank
@Schema(description = "Typen beskriver formatet og begrensningene til beløp, maks totalt antall sifre=11, desimaler=2")
private BigDecimal belopGrense;
@NotBlank
private LocalDate datoGrenseFom;
private LocalDate datoGrenseTom;
@Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1)
private String feilreg;
}
}

0 comments on commit 83ee526

Please sign in to comment.