Skip to content

Commit

Permalink
Svp søknad går mot nytt endepunkt med modernisert kontrakt (#2729)
Browse files Browse the repository at this point in the history
  • Loading branch information
espenwaaga authored Oct 1, 2024
1 parent 9f9c482 commit 9f6fcf2
Show file tree
Hide file tree
Showing 33 changed files with 460 additions and 306 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto;

import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY;
import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME;
import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST;

import java.time.LocalDate;

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.neovisionaries.i18n.CountryCode;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import no.nav.foreldrepenger.common.domain.felles.opptjening.AnnenOpptjeningType;

@JsonTypeInfo(use = NAME, include = PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = AnnenInntektDto.Annet.class, names = { "ETTERLØNN_SLUTTPAKKE", "MILITÆR_ELLER_SIVILTJENESTE" }),
@JsonSubTypes.Type(value = AnnenInntektDto.Utlandet.class, name = "JOBB_I_UTLANDET")
})
public interface AnnenInntektDto {
LocalDate fom();
LocalDate tom();

record Annet(@NotNull AnnenOpptjeningType type, @NotNull LocalDate fom, LocalDate tom) implements AnnenInntektDto {
}

record Utlandet(@NotNull CountryCode land,
@NotNull @Pattern(regexp = FRITEKST) String arbeidsgiverNavn,
@NotNull LocalDate fom,
LocalDate tom) implements AnnenInntektDto {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto;

import java.time.LocalDate;

import jakarta.validation.constraints.NotNull;

public record FrilansDto(boolean jobberFremdelesSomFrilans, @NotNull LocalDate oppstart) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto;

import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST;

import java.time.LocalDate;

import com.neovisionaries.i18n.CountryCode;

import jakarta.validation.Valid;
import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import no.nav.foreldrepenger.common.domain.Orgnummer;
import no.nav.foreldrepenger.common.domain.felles.opptjening.Virksomhetstype;

public record NæringDto(@Valid @NotNull LocalDate fom,
@Valid LocalDate tom,
@Valid Virksomhetstype næringstype,
@Pattern(regexp = FRITEKST) String navnPåNæringen,
@Valid Orgnummer organisasjonsnummer,
@Digits(integer = 9, fraction = 0) Integer næringsinntekt,
boolean registrertINorge,
CountryCode registrertILand,
boolean harBlittYrkesaktivILøpetAvDeTreSisteFerdigliknedeÅrene,
LocalDate oppstartsdato,
boolean hattVarigEndringAvNæringsinntektSiste4Kalenderår,
LocalDate varigEndringDato,
@Digits(integer = 9, fraction = 0) Integer varigEndringInntektEtterEndring,
@Pattern(regexp = FRITEKST) String varigEndringBeskrivelse) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,20 @@

import java.util.List;

import no.nav.foreldrepenger.common.domain.BrukerRolle;
import no.nav.foreldrepenger.common.oppslag.dkif.Målform;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.Innsending;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.engangsstønad.EngangsstønadDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.foreldrepenger.ForeldrepengesøknadDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.SvangerskapspengesøknadDto;

public interface SøknadDto extends Innsending {
BarnDto barn();
BrukerRolle rolle();
Målform språkkode();
List<UtenlandsoppholdsperiodeDto> utenlandsopphold();
List<VedleggDto> vedlegg();

default String navn() {
if (this instanceof ForeldrepengesøknadDto) return "foreldrepenger";
if (this instanceof EngangsstønadDto) return "engangsstønad";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

import no.nav.foreldrepenger.common.domain.Saksnummer;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.Innsending;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto;

Expand All @@ -20,7 +19,6 @@
public interface EndringssøknadDto extends Innsending {
Saksnummer saksnummer();
BarnDto barn();
SøkerDto søker();
List<VedleggDto> vedlegg();

default String navn() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,23 @@
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import no.nav.foreldrepenger.common.domain.BrukerRolle;
import no.nav.foreldrepenger.common.domain.Saksnummer;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto;
import no.nav.foreldrepenger.common.oppslag.dkif.Målform;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.foreldrepenger.annenpart.AnnenForelderDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.foreldrepenger.uttaksplan.UttaksplanDto;

public record EndringssøknadForeldrepengerDto(LocalDate mottattdato,
@Valid @NotNull Saksnummer saksnummer,
@Valid @NotNull SøkerDto søker,
@Valid BrukerRolle rolle,
@Valid Målform språkkode,
@Valid @NotNull BarnDto barn,
@Valid AnnenForelderDto annenForelder,
@Pattern(regexp = FRITEKST) String tilleggsopplysninger,
@Valid @NotNull UttaksplanDto uttaksplan,
@Valid @NotNull Saksnummer saksnummer,
@Valid @VedlegglistestørrelseConstraint @Size(max = 100) List<@Valid VedleggDto> vedlegg) implements EndringssøknadDto {

public EndringssøknadForeldrepengerDto {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@
import java.util.List;
import java.util.Optional;

import com.fasterxml.jackson.annotation.JsonAlias;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import no.nav.foreldrepenger.common.domain.BrukerRolle;
import no.nav.foreldrepenger.common.oppslag.dkif.Målform;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint;
Expand All @@ -19,10 +18,15 @@
public record EngangsstønadDto(LocalDate mottattdato,
@NotNull Målform språkkode,
@Valid @NotNull BarnDto barn,
@Valid @Size(max = 40) @JsonAlias("oppholdIUtlandet") List<@Valid @NotNull UtenlandsoppholdsperiodeDto> utenlandsopphold, // TODO: Fjern etter omlegging
@Valid @Size(max = 40) List<@Valid @NotNull UtenlandsoppholdsperiodeDto> utenlandsopphold,
@Valid @VedlegglistestørrelseConstraint @Size(max = 100) List<@Valid @NotNull VedleggDto> vedlegg) implements SøknadDto {

public EngangsstønadDto {
vedlegg = Optional.ofNullable(vedlegg).orElse(List.of());
}

@Override
public BrukerRolle rolle() {
return BrukerRolle.MOR;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,34 @@
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto;
import no.nav.foreldrepenger.common.domain.BrukerRolle;
import no.nav.foreldrepenger.common.oppslag.dkif.Målform;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.AnnenInntektDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.FrilansDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.NæringDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.SøknadDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.UtenlandsoppholdsperiodeDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.foreldrepenger.annenpart.AnnenForelderDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.foreldrepenger.uttaksplan.UttaksplanDto;

public record ForeldrepengesøknadDto(LocalDate mottattdato,
@Valid @NotNull SøkerDto søker,
@Valid BrukerRolle rolle,
@Valid Målform språkkode,
@Valid FrilansDto frilansInformasjon,
@Valid NæringDto selvstendigNæringsdrivendeInformasjon,
@Valid @Size(max = 40) List<@Valid @NotNull AnnenInntektDto> andreInntekterSiste10Mnd,
@Valid @NotNull BarnDto barn,
@Valid AnnenForelderDto annenForelder,
@Valid @NotNull Dekningsgrad dekningsgrad,
@Pattern(regexp = FRITEKST) String tilleggsopplysninger,
@Valid @NotNull UttaksplanDto uttaksplan,
@Pattern(regexp = FRITEKST) String tilleggsopplysninger,
@Valid @Size(max = 40) List<@Valid @NotNull UtenlandsoppholdsperiodeDto> utenlandsopphold,
@Valid @VedlegglistestørrelseConstraint @Size(max = 100) List<@Valid VedleggDto> vedlegg) implements SøknadDto {
public ForeldrepengesøknadDto {
andreInntekterSiste10Mnd = Optional.ofNullable(andreInntekterSiste10Mnd).orElse(List.of());
vedlegg = Optional.ofNullable(vedlegg).orElse(List.of());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ public interface AnnenForelderDto {

record Rettigheter(@NotNull Boolean harRettPåForeldrepenger,
@NotNull Boolean erInformertOmSøknaden,
Boolean erAleneOmOmsorg,
Boolean harMorUføretrygd,
Boolean harAnnenForelderOppholdtSegIEØS,
Boolean harAnnenForelderTilsvarendeRettEØS) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger;

import java.time.LocalDate;

import jakarta.validation.constraints.NotNull;

public record BarnSvpDto(@NotNull LocalDate termindato, LocalDate fødselsdato) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,32 +7,33 @@
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import no.nav.foreldrepenger.common.domain.BrukerRolle;
import no.nav.foreldrepenger.common.oppslag.dkif.Målform;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.AnnenInntektDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.FrilansInformasjonDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.NæringDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.AnnenInntektDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.FrilansDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.NæringDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.SøknadDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.UtenlandsoppholdsperiodeDto;
import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging.TilretteleggingDto;

public record SvangerskapspengesøknadDto(LocalDate mottattdato,
@NotNull Målform språkkode,
@Valid @NotNull BarnDto barn,
@Valid FrilansInformasjonDto frilansInformasjon,
@Valid @Size(max = 15) List<@Valid @NotNull NæringDto> selvstendigNæringsdrivendeInformasjon,
@Valid @Size(max = 15) List<@Valid @NotNull AnnenInntektDto> andreInntekterSiste10Mnd,
@Valid @NotNull BarnSvpDto barn,
@Valid BrukerRolle rolle,
@Valid Målform språkkode,
@Valid FrilansDto frilans,
@Valid NæringDto egenNæring,
@Valid @Size(max = 40) List<AnnenInntektDto.@NotNull @Valid Utlandet> andreInntekterSiste10Mnd,
@Valid @Size(max = 40) List<@Valid @NotNull UtenlandsoppholdsperiodeDto> utenlandsopphold,
@Valid @NotNull @Size(max = 100) List<@Valid @NotNull TilretteleggingDto> tilretteleggingsbehov,
@Valid @NotNull @Size(max = 100) List<@Valid @NotNull TilretteleggingDto> tilrettelegging,
@Valid @Size(max = 100) List<@Valid @NotNull AvtaltFerieDto> avtaltFerie,
@Valid @VedlegglistestørrelseConstraint @Size(max = 100) List<@Valid @NotNull VedleggDto> vedlegg) implements SøknadDto {

public SvangerskapspengesøknadDto {
selvstendigNæringsdrivendeInformasjon = Optional.ofNullable(selvstendigNæringsdrivendeInformasjon).orElse(List.of());
andreInntekterSiste10Mnd = Optional.ofNullable(andreInntekterSiste10Mnd).orElse(List.of());
utenlandsopphold = Optional.ofNullable(utenlandsopphold).orElse(List.of());
tilretteleggingsbehov = Optional.ofNullable(tilretteleggingsbehov).orElse(List.of());
tilrettelegging = Optional.ofNullable(tilrettelegging).orElse(List.of());
andreInntekterSiste10Mnd = Optional.ofNullable(andreInntekterSiste10Mnd).orElse(List.of());
vedlegg = Optional.ofNullable(vedlegg).orElse(List.of());
avtaltFerie = Optional.ofNullable(avtaltFerie).orElse(List.of());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@

@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"})
@JsonSubTypes.Type(value = VirksomhetDto.class, name = "virksomhet"),
@JsonSubTypes.Type(value = PrivatArbeidsgiverDto.class, name = "privat"),
@JsonSubTypes.Type(value = SelvstendigNæringsdrivendeDto.class, name = "selvstendig"),
@JsonSubTypes.Type(value = FrilanserDto.class, name = "frilanser")
})
public interface ArbeidsforholdDto {
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger;
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging;

import java.time.LocalDate;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger;
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging;

import java.time.LocalDate;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger;
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging;

import java.time.LocalDate;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger;
package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging;

import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY;
import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME;
Expand Down
Loading

0 comments on commit 9f6fcf2

Please sign in to comment.