diff --git a/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/innsending/validering/InnsendingControllerValidationTest.java b/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/innsending/validering/InnsendingControllerValidationTest.java index ee59346a8..bec7542a9 100644 --- a/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/innsending/validering/InnsendingControllerValidationTest.java +++ b/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/innsending/validering/InnsendingControllerValidationTest.java @@ -27,7 +27,7 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.endringssøknad.EndringssøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.endringssøknad.EndringssøknadForeldrepengerDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.ForeldrepengesøknadDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.VirksomhetDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.ArbeidsforholdDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.SvangerskapspengesøknadDto; @Import({InnsendingController.class, ApiExceptionHandler.class}) @@ -111,7 +111,7 @@ void foreldrepengesoknadAnnenInntektValidering() throws Exception { void svangerskapspengerValidering() throws Exception { var svpSøknad = mapper.readValue(bytesFra("json/svangerskapspengesøknad.json"), SvangerskapspengesøknadDto.class); var tilrettelegging = svpSøknad.tilretteleggingsbehov().get(0); - var virksomhet = (VirksomhetDto) tilrettelegging.arbeidsforhold(); + var virksomhet = (ArbeidsforholdDto.VirksomhetDto) tilrettelegging.arbeidsforhold(); var result = mvc.perform(post(InnsendingController.INNSENDING_CONTROLLER_PATH + "/svangerskapspenger") .contentType(MediaType.APPLICATION_JSON) .content(mapper.writeValueAsString(svpSøknad) diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonReferanseMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonReferanseMapper.java index 9626dfd49..6e391c718 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonReferanseMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonReferanseMapper.java @@ -5,11 +5,7 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ÅpenPeriodeDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggReferanse; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.FrilanserDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.PrivatArbeidsgiverDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.VirksomhetDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.ArbeidsforholdDto; public class DokumentasjonReferanseMapper { @@ -49,10 +45,10 @@ public static List dokumentasjonSomDokumentererTilrettelegggin private static boolean matcherArbeidsforhold(ArbeidsforholdDto arbeidsforholdVedlegg, ArbeidsforholdDto arbeidsforholdSøknad) { return switch (arbeidsforholdSøknad) { - case VirksomhetDto v -> arbeidsforholdVedlegg instanceof VirksomhetDto afVedlegg && afVedlegg.id().equals(v.id()); - case PrivatArbeidsgiverDto p -> arbeidsforholdVedlegg instanceof PrivatArbeidsgiverDto afVedlegg && afVedlegg.id().equals(p.id()); - case SelvstendigNæringsdrivendeDto ignored -> arbeidsforholdVedlegg instanceof SelvstendigNæringsdrivendeDto; - case FrilanserDto ignored -> arbeidsforholdVedlegg instanceof FrilanserDto; + case ArbeidsforholdDto.VirksomhetDto v -> arbeidsforholdVedlegg instanceof ArbeidsforholdDto.VirksomhetDto afVedlegg && afVedlegg.id().equals(v.id()); + case ArbeidsforholdDto.PrivatArbeidsgiverDto p -> arbeidsforholdVedlegg instanceof ArbeidsforholdDto.PrivatArbeidsgiverDto afVedlegg && afVedlegg.id().equals(p.id()); + case ArbeidsforholdDto.SelvstendigNæringsdrivendeDto ignored -> arbeidsforholdVedlegg instanceof ArbeidsforholdDto.SelvstendigNæringsdrivendeDto; + case ArbeidsforholdDto.FrilanserDto ignored -> arbeidsforholdVedlegg instanceof ArbeidsforholdDto.FrilanserDto; default -> throw new IllegalStateException("Unexpected value: " + arbeidsforholdSøknad); }; } diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggDto.java index 23c9d05d2..e66b55e33 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggDto.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggDto.java @@ -15,7 +15,7 @@ import no.nav.foreldrepenger.common.domain.felles.DokumentType; import no.nav.foreldrepenger.common.domain.felles.InnsendingsType; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ÅpenPeriodeDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.ArbeidsforholdDto; public record VedleggDto(UUID uuid, @NotNull DokumentType skjemanummer, diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/ArbeidsforholdDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/ArbeidsforholdDto.java new file mode 100644 index 000000000..de1f3c6c7 --- /dev/null +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/ArbeidsforholdDto.java @@ -0,0 +1,28 @@ +package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger; + + +import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY; +import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import no.nav.foreldrepenger.common.domain.Fødselsnummer; +import no.nav.foreldrepenger.common.domain.Orgnummer; + +@JsonTypeInfo(use = NAME, include = PROPERTY, property = "type") +@JsonSubTypes({ + @JsonSubTypes.Type(value = ArbeidsforholdDto.VirksomhetDto.class, name = "virksomhet"), + @JsonSubTypes.Type(value = ArbeidsforholdDto.PrivatArbeidsgiverDto.class, name = "privat"), + @JsonSubTypes.Type(value = ArbeidsforholdDto.SelvstendigNæringsdrivendeDto.class, name = "selvstendig"), + @JsonSubTypes.Type(value = ArbeidsforholdDto.FrilanserDto.class, name = "frilanser") +}) +public interface ArbeidsforholdDto { + + record VirksomhetDto(@Valid @NotNull Orgnummer id) implements ArbeidsforholdDto {} + record PrivatArbeidsgiverDto(@Valid @NotNull Fødselsnummer id) implements ArbeidsforholdDto {} + record FrilanserDto() implements ArbeidsforholdDto {} + record SelvstendigNæringsdrivendeDto() implements ArbeidsforholdDto {} +} diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/AvtaltFerieDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/AvtaltFerieDto.java index aabcdb575..9c8571bd7 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/AvtaltFerieDto.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/AvtaltFerieDto.java @@ -3,7 +3,13 @@ import java.time.LocalDate; import jakarta.validation.Valid; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotNull; -public record AvtaltFerieDto(@Valid ArbeidsforholdDto arbeidsforhold, LocalDate fom, LocalDate tom) { +public record AvtaltFerieDto(@Valid @NotNull ArbeidsforholdDto arbeidsforhold, @NotNull LocalDate fom, @NotNull LocalDate tom) { + + @AssertTrue(message = "Kan bare legge til avtalt ferie for virksomhet") + public boolean isArbeidsforholdVirksomhet() { + return arbeidsforhold instanceof ArbeidsforholdDto.VirksomhetDto || arbeidsforhold instanceof ArbeidsforholdDto.PrivatArbeidsgiverDto; + } } diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" index a7a16c2d4..3d95d2af0 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" @@ -33,7 +33,7 @@ public record SvangerskapspengesøknadDto(LocalDate mottattdato, utenlandsopphold = Optional.ofNullable(utenlandsopphold).orElse(List.of()); tilretteleggingsbehov = Optional.ofNullable(tilretteleggingsbehov).orElse(List.of()); andreInntekterSiste10Mnd = Optional.ofNullable(andreInntekterSiste10Mnd).orElse(List.of()); - vedlegg = Optional.ofNullable(vedlegg).orElse(List.of()); avtaltFerie = Optional.ofNullable(avtaltFerie).orElse(List.of()); + vedlegg = Optional.ofNullable(vedlegg).orElse(List.of()); } } diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/TilretteleggingbehovDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/TilretteleggingbehovDto.java index ddafb7485..b3c5a007c 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/TilretteleggingbehovDto.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/TilretteleggingbehovDto.java @@ -17,9 +17,6 @@ import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.FrilanserDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; public record TilretteleggingbehovDto(@Valid @NotNull ArbeidsforholdDto arbeidsforhold, @NotNull LocalDate behovForTilretteleggingFom, @@ -29,7 +26,7 @@ public record TilretteleggingbehovDto(@Valid @NotNull ArbeidsforholdDto arbeidsf @AssertTrue(message = "Tilrettelegging av næring eller frilans må ha satt risikofaktorer og tilretteleggingstiltak") public boolean isRisikofaktorerOgTilretteleggingtiltakSattForNæringFrilans() { - if (arbeidsforhold instanceof FrilanserDto || arbeidsforhold instanceof SelvstendigNæringsdrivendeDto) { + if (arbeidsforhold instanceof ArbeidsforholdDto.FrilanserDto || arbeidsforhold instanceof ArbeidsforholdDto.SelvstendigNæringsdrivendeDto) { return risikofaktorer != null && tilretteleggingstiltak != null; } return true; diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/ArbeidsforholdDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/ArbeidsforholdDto.java deleted file mode 100644 index 4efa03af0..000000000 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/ArbeidsforholdDto.java +++ /dev/null @@ -1,18 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold; - - -import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY; -import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME; - -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -@JsonTypeInfo(use = NAME, include = PROPERTY, property = "type") -@JsonSubTypes({ - @JsonSubTypes.Type(value = VirksomhetDto.class, names = {"virksomhet", "VIRKSOMHET"}), - @JsonSubTypes.Type(value = PrivatArbeidsgiverDto.class, names = {"privat", "PRIVAT"}), - @JsonSubTypes.Type(value = SelvstendigNæringsdrivendeDto.class, names = {"selvstendig", "SELVSTENDIG"}), - @JsonSubTypes.Type(value = FrilanserDto.class, names = {"frilanser", "FRILANSER"}) -}) -public interface ArbeidsforholdDto { -} diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/FrilanserDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/FrilanserDto.java deleted file mode 100644 index 118ecc2c9..000000000 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/FrilanserDto.java +++ /dev/null @@ -1,9 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold; - -import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; - -import jakarta.validation.constraints.Pattern; - -public record FrilanserDto(@Pattern(regexp = FRITEKST) String risikofaktorer, - @Pattern(regexp = FRITEKST) String tilretteleggingstiltak) implements ArbeidsforholdDto { -} diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/PrivatArbeidsgiverDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/PrivatArbeidsgiverDto.java deleted file mode 100644 index 9dae3bfcb..000000000 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/PrivatArbeidsgiverDto.java +++ /dev/null @@ -1,8 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; -import no.nav.foreldrepenger.common.domain.Fødselsnummer; - -public record PrivatArbeidsgiverDto(@Valid @NotNull Fødselsnummer id) implements ArbeidsforholdDto { -} diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/SelvstendigN\303\246ringsdrivendeDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/SelvstendigN\303\246ringsdrivendeDto.java" deleted file mode 100644 index 4cff5b708..000000000 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/SelvstendigN\303\246ringsdrivendeDto.java" +++ /dev/null @@ -1,9 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold; - -import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; - -import jakarta.validation.constraints.Pattern; - -public record SelvstendigNæringsdrivendeDto(@Pattern(regexp = FRITEKST) String risikofaktorer, - @Pattern(regexp = FRITEKST) String tilretteleggingstiltak) implements ArbeidsforholdDto { -} diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/VirksomhetDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/VirksomhetDto.java deleted file mode 100644 index bde51ff28..000000000 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/arbeidsforhold/VirksomhetDto.java +++ /dev/null @@ -1,8 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; -import no.nav.foreldrepenger.common.domain.Orgnummer; - -public record VirksomhetDto(@Valid @NotNull Orgnummer id) implements ArbeidsforholdDto { -} diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMapper.java index d0a2b0b1f..3d964d865 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMapper.java @@ -26,11 +26,7 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.NæringDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.SvangerskapspengesøknadDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.FrilanserDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.PrivatArbeidsgiverDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.VirksomhetDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.ArbeidsforholdDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.TilretteleggingbehovDto; @@ -83,10 +79,10 @@ private static Tilretteleggingbehov tilTilretteleggingBehov(Tilretteleggingbehov private static Arbeidsforhold tilArbeidsforhold(TilretteleggingbehovDto tilretteleggingbehov) { var arbeidsforhold = tilretteleggingbehov.arbeidsforhold(); return switch (arbeidsforhold) { - case VirksomhetDto virksomhet -> new Virksomhet(virksomhet.id()); - case PrivatArbeidsgiverDto privat -> new PrivatArbeidsgiver(privat.id()); - case SelvstendigNæringsdrivendeDto ignore -> new SelvstendigNæringsdrivende(tilretteleggingbehov.risikofaktorer(), tilretteleggingbehov.tilretteleggingstiltak()); - case FrilanserDto ignore -> new Frilanser(tilretteleggingbehov.risikofaktorer(), tilretteleggingbehov.tilretteleggingstiltak()); + case ArbeidsforholdDto.VirksomhetDto virksomhet -> new Virksomhet(virksomhet.id()); + case ArbeidsforholdDto.PrivatArbeidsgiverDto privat -> new PrivatArbeidsgiver(privat.id()); + case ArbeidsforholdDto.SelvstendigNæringsdrivendeDto ignore -> new SelvstendigNæringsdrivende(tilretteleggingbehov.risikofaktorer(), tilretteleggingbehov.tilretteleggingstiltak()); + case ArbeidsforholdDto.FrilanserDto ignore -> new Frilanser(tilretteleggingbehov.risikofaktorer(), tilretteleggingbehov.tilretteleggingstiltak()); default -> throw new IllegalStateException("Utviklerfeil: Arbeidsforhold kan bare være virksomhet, privat, næring, frilans, men er " + arbeidsforhold); }; } @@ -99,9 +95,9 @@ private static List tilTilrettelegging(Lis private static Tilretteleggingbehov.Tilrettelegging tilTilrettelegging(TilretteleggingbehovDto.TilretteleggingDto tilrettelegging) { return switch (tilrettelegging) { - case TilretteleggingbehovDto.TilretteleggingDto.Hel hel -> new Tilretteleggingbehov.Tilrettelegging.Hel(hel.fom()); - case TilretteleggingbehovDto.TilretteleggingDto.Del del -> new Tilretteleggingbehov.Tilrettelegging.Delvis(del.fom(), del.stillingsprosent()); - case TilretteleggingbehovDto.TilretteleggingDto.Ingen ingen -> new Tilretteleggingbehov.Tilrettelegging.Ingen(ingen.fom()); + case TilretteleggingbehovDto.TilretteleggingDto.Hel(var fom) -> new Tilretteleggingbehov.Tilrettelegging.Hel(fom); + case TilretteleggingbehovDto.TilretteleggingDto.Del(var fom, var stillingsprosent) -> new Tilretteleggingbehov.Tilrettelegging.Delvis(fom, stillingsprosent); + case TilretteleggingbehovDto.TilretteleggingDto.Ingen(var fom) -> new Tilretteleggingbehov.Tilrettelegging.Ingen(fom); default -> throw new IllegalArgumentException("Ugyldig tilrettelegging: " + tilrettelegging); }; } @@ -113,40 +109,12 @@ private static Opptjening tilOpptjening(NæringDto næring, FrilansDto frilans, private static List tilFerieperioder(SvangerskapspengesøknadDto s) { return safeStream(s.avtaltFerie()).map(af -> { - var arbeidsforhold = tilArbeidsforhold(af.arbeidsforhold()); + var arbeidsforhold = switch (af.arbeidsforhold()) { + case ArbeidsforholdDto.VirksomhetDto virksomhet -> new Virksomhet(virksomhet.id()); + case ArbeidsforholdDto.PrivatArbeidsgiverDto privat -> new PrivatArbeidsgiver(privat.id()); + default ->throw new IllegalStateException("Utviklerfeil: Arbeidsforhold kan bare være virksomhet eller privat for avtalt ferie, men er " + af.arbeidsforhold()); + }; return new AvtaltFerie(arbeidsforhold, af.fom(), af.tom()); }).toList(); } - - private static Arbeidsforhold tilArbeidsforhold(ArbeidsforholdDto arbeidsforhold) { - if (arbeidsforhold instanceof VirksomhetDto virksomhet) { - return tilVirksomhet(virksomhet); - } - if (arbeidsforhold instanceof PrivatArbeidsgiverDto privat) { - return tilPrivatArbeidsgiver(privat); - } - if (arbeidsforhold instanceof SelvstendigNæringsdrivendeDto næring) { - return tilSelvstendigNæringsdrivende(næring); - } - if (arbeidsforhold instanceof FrilanserDto frilans) { - return tilFrilanser(frilans); - } - throw new IllegalStateException("Utviklerfeil: Arbeidsforhold kan bare være virksomhet, privat, næring, frilans, men er " + arbeidsforhold); - } - - private static Frilanser tilFrilanser(FrilanserDto frilans) { - return new Frilanser(frilans.risikofaktorer(), frilans.tilretteleggingstiltak()); - } - - private static SelvstendigNæringsdrivende tilSelvstendigNæringsdrivende(SelvstendigNæringsdrivendeDto næring) { - return new SelvstendigNæringsdrivende(næring.risikofaktorer(), næring.tilretteleggingstiltak()); - } - - private static PrivatArbeidsgiver tilPrivatArbeidsgiver(PrivatArbeidsgiverDto privat) { - return new PrivatArbeidsgiver(privat.id()); - } - - private static Virksomhet tilVirksomhet(VirksomhetDto virksomhet) { - return new Virksomhet(virksomhet.id()); - } } diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonUtil.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonUtil.java index 0c29dffcd..085e576bc 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonUtil.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonUtil.java @@ -8,7 +8,7 @@ import no.nav.foreldrepenger.common.domain.felles.DokumentType; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.ArbeidsforholdDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ÅpenPeriodeDto; public class DokumentasjonUtil { diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/TilretteleggingBehovBuilder.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/TilretteleggingBehovBuilder.java index d8472c954..965934a86 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/TilretteleggingBehovBuilder.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/TilretteleggingBehovBuilder.java @@ -4,9 +4,7 @@ import java.util.ArrayList; import java.util.List; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.FrilanserDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.ArbeidsforholdDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.TilretteleggingbehovDto; @@ -20,7 +18,7 @@ public class TilretteleggingBehovBuilder { public TilretteleggingBehovBuilder(ArbeidsforholdDto arbeidsforhold, LocalDate behovForTilretteleggingFom) { this.arbeidsforhold = arbeidsforhold; this.behovForTilretteleggingFom = behovForTilretteleggingFom; - if (arbeidsforhold instanceof SelvstendigNæringsdrivendeDto || arbeidsforhold instanceof FrilanserDto) { + if (arbeidsforhold instanceof ArbeidsforholdDto.SelvstendigNæringsdrivendeDto || arbeidsforhold instanceof ArbeidsforholdDto.FrilanserDto) { this.risikofaktorer = "Risikofaktorer her"; this.tilretteleggingstiltak = "Tilretteleggingstiltak her"; } diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/maler/ArbeidsforholdMaler.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/maler/ArbeidsforholdMaler.java index 5ae40a3a2..7c68fc6dc 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/maler/ArbeidsforholdMaler.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/maler/ArbeidsforholdMaler.java @@ -2,10 +2,7 @@ import no.nav.foreldrepenger.common.domain.Fødselsnummer; import no.nav.foreldrepenger.common.domain.Orgnummer; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.PrivatArbeidsgiverDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.VirksomhetDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.ArbeidsforholdDto; public final class ArbeidsforholdMaler { @@ -13,18 +10,15 @@ private ArbeidsforholdMaler() { } public static ArbeidsforholdDto virksomhet(Orgnummer orgnummer) { - return new VirksomhetDto(orgnummer); + return new ArbeidsforholdDto.VirksomhetDto(orgnummer); } public static ArbeidsforholdDto privatArbeidsgiver(Fødselsnummer fnr) { - return new PrivatArbeidsgiverDto(fnr); + return new ArbeidsforholdDto.PrivatArbeidsgiverDto(fnr); } public static ArbeidsforholdDto selvstendigNæringsdrivende() { - return new SelvstendigNæringsdrivendeDto( - "risikofaktorer fra søker", - "tilretteleggingstiltak fra søker" - ); + return new ArbeidsforholdDto.SelvstendigNæringsdrivendeDto(); } }