Skip to content

Commit d6796b9

Browse files
authored
Første versjon av kontrakt for søknad for Pleiepenger i livets sluttfase (#209)
1 parent 80d1df6 commit d6796b9

File tree

4 files changed

+184
-3
lines changed

4 files changed

+184
-3
lines changed

soknad/src/main/java/no/nav/k9/søknad/felles/fravær/FraværPeriode.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.stream.Collectors;
77

88
import javax.validation.Valid;
9+
import javax.validation.constraints.NotNull;
910
import javax.validation.constraints.Size;
1011

1112
import com.fasterxml.jackson.annotation.JsonAutoDetect;
@@ -21,6 +22,7 @@
2122
public class FraværPeriode implements Comparable<FraværPeriode> {
2223

2324
@Valid
25+
@NotNull
2426
@JsonProperty("periode")
2527
private final Periode periode;
2628
@JsonProperty("duration")
@@ -34,8 +36,9 @@ public class FraværPeriode implements Comparable<FraværPeriode> {
3436
@JsonProperty(value = "søknadÅrsak")
3537
private SøknadÅrsak søknadÅrsak;
3638

39+
//TODO konverter fra liste til enkeltelement
3740
@Valid
38-
@Size(min = 1, max = 2)
41+
@Size(min = 1, max = 1)
3942
@JsonProperty(value = "aktivitetFravær", required = true)
4043
private final List<AktivitetFravær> aktivitetFravær;
4144

@@ -102,13 +105,14 @@ public boolean equals(Object o) {
102105
Objects.equals(duration, that.duration) &&
103106
Objects.equals(årsak, that.årsak) &&
104107
Objects.equals(aktivitetFravær, that.aktivitetFravær) &&
108+
Objects.equals(søknadÅrsak, that.søknadÅrsak) &&
105109
Objects.equals(arbeidsgiverOrgNr, that.arbeidsgiverOrgNr) &&
106-
Objects.equals(aktivitetFravær, that.arbeidsforholdId);
110+
Objects.equals(arbeidsforholdId, that.arbeidsforholdId);
107111
}
108112

109113
@Override
110114
public int hashCode() {
111-
return Objects.hash(periode, duration, årsak, aktivitetFravær, arbeidsgiverOrgNr, arbeidsforholdId);
115+
return Objects.hash(periode, duration, årsak, aktivitetFravær, søknadÅrsak, arbeidsgiverOrgNr, arbeidsforholdId);
112116
}
113117

114118
@Override

soknad/src/main/java/no/nav/k9/søknad/ytelse/Ytelse.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public interface Ytelse {
3434
String OMSORGSPENGER_UTVIDETRETT_MIDLERTIDIG_ALENE = "OMP_UTV_MA";
3535
String OMSORGSPENGER_UTVIDETRETT_ALENE_OMSORG = "OMP_UTV_AO";
3636
String PLEIEPENGER_SYKT_BARN = "PLEIEPENGER_SYKT_BARN";
37+
String PLEIEPENGER_LIVETS_SLUTTFASE = "PLEIEPENGER_LIVETS_SLUTTFASE";
3738

3839
Ytelse.Type getType();
3940

@@ -53,6 +54,7 @@ public interface Ytelse {
5354
enum Type {
5455
OMSORGSPENGER_UTBETALING(Ytelse.OMSORGSPENGER_UTBETALING),
5556
PLEIEPENGER_SYKT_BARN(Ytelse.PLEIEPENGER_SYKT_BARN),
57+
PLEIEPENGER_LIVETS_SLUTTFASE(Ytelse.PLEIEPENGER_LIVETS_SLUTTFASE),
5658
OMSORGSPENGER_UTVIDETRETT_KRONISK_SYKT_BARN(Ytelse.OMSORGSPENGER_UTVIDETRETT_KRONISK_SYKT),
5759
OMSORGSPENGER_UTVIDETRETT_MIDLERTIDIG_ALENE(Ytelse.OMSORGSPENGER_UTVIDETRETT_MIDLERTIDIG_ALENE),
5860
OMSORGSPENGER_UTVIDETRETT_ALENE_OMSORG(Ytelse.OMSORGSPENGER_UTVIDETRETT_ALENE_OMSORG),
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package no.nav.k9.søknad.ytelse.pls.v1;
2+
3+
import java.util.Objects;
4+
5+
import javax.validation.Valid;
6+
import javax.validation.constraints.NotNull;
7+
8+
import com.fasterxml.jackson.annotation.JsonAlias;
9+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
10+
import com.fasterxml.jackson.annotation.JsonCreator;
11+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
12+
import com.fasterxml.jackson.annotation.JsonProperty;
13+
14+
import no.nav.k9.søknad.felles.type.NorskIdentitetsnummer;
15+
import no.nav.k9.søknad.felles.type.Person;
16+
import no.nav.k9.søknad.felles.type.PersonIdent;
17+
18+
@JsonIgnoreProperties(ignoreUnknown = true)
19+
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
20+
public class Pleietrengende implements Person {
21+
22+
@JsonAlias({ "fødselsnummer", "norskIdentifikator", "identitetsnummer", "fnr" })
23+
@JsonProperty(value = "norskIdentitetsnummer", required = true)
24+
@NotNull
25+
@Valid
26+
private NorskIdentitetsnummer norskIdentitetsnummer;
27+
28+
@JsonCreator
29+
public Pleietrengende(@JsonProperty(value = "norskIdentitetsnummer", required = true) @JsonAlias({ "fødselsnummer", "norskIdentifikator", "identitetsnummer", "fnr" }) NorskIdentitetsnummer norskIdentitetsnummer) {
30+
this.norskIdentitetsnummer = Objects.requireNonNull(norskIdentitetsnummer, "norskIdentitetsnummer");
31+
}
32+
33+
@Override
34+
public boolean equals(Object obj) {
35+
if (obj == this)
36+
return true;
37+
if (obj == null || obj.getClass() != this.getClass())
38+
return false;
39+
var other = (Pleietrengende) obj;
40+
41+
return Objects.equals(norskIdentitetsnummer, other.norskIdentitetsnummer);
42+
}
43+
44+
@Override
45+
public PersonIdent getPersonIdent() {
46+
return norskIdentitetsnummer;
47+
}
48+
49+
@Override
50+
public int hashCode() {
51+
return Objects.hash(norskIdentitetsnummer);
52+
}
53+
54+
}
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
package no.nav.k9.søknad.ytelse.pls.v1;
2+
3+
import java.util.List;
4+
import java.util.Objects;
5+
6+
import javax.validation.Valid;
7+
import javax.validation.constraints.NotNull;
8+
9+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
10+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
11+
import com.fasterxml.jackson.annotation.JsonProperty;
12+
import com.fasterxml.jackson.annotation.JsonTypeName;
13+
14+
import no.nav.k9.søknad.felles.opptjening.OpptjeningAktivitet;
15+
import no.nav.k9.søknad.felles.personopplysninger.Bosteder;
16+
import no.nav.k9.søknad.felles.personopplysninger.Utenlandsopphold;
17+
import no.nav.k9.søknad.felles.type.Periode;
18+
import no.nav.k9.søknad.felles.type.Person;
19+
import no.nav.k9.søknad.ytelse.Ytelse;
20+
import no.nav.k9.søknad.ytelse.YtelseValidator;
21+
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.Arbeidstid;
22+
23+
@JsonIgnoreProperties(ignoreUnknown = true)
24+
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
25+
@JsonTypeName(Ytelse.PLEIEPENGER_LIVETS_SLUTTFASE)
26+
public class PleipengerLivetsSluttfase implements Ytelse{
27+
28+
@Valid
29+
@NotNull
30+
@JsonProperty(value = "pleietrengende", required = true)
31+
private Pleietrengende pleietrengende;
32+
33+
@Valid
34+
@NotNull
35+
@JsonProperty(value = "arbeidstid", required = true)
36+
private Arbeidstid arbeidstid = new Arbeidstid();
37+
38+
@Valid
39+
@JsonProperty(value = "opptjeningAktivitet")
40+
private OpptjeningAktivitet opptjeningAktivitet = new OpptjeningAktivitet();
41+
42+
@Valid
43+
@JsonProperty(value = "bosteder", required = true)
44+
private Bosteder bosteder = new Bosteder();
45+
46+
@Valid
47+
@JsonProperty(value = "utenlandsopphold", required = true)
48+
private Utenlandsopphold utenlandsopphold = new Utenlandsopphold();
49+
50+
@Override
51+
public Type getType() {
52+
return Type.PLEIEPENGER_LIVETS_SLUTTFASE;
53+
}
54+
55+
@Override
56+
public YtelseValidator getValidator() {
57+
//TODO lage validator
58+
return null;
59+
}
60+
61+
@Override
62+
public List<Person> getBerørtePersoner() {
63+
return List.of(pleietrengende);
64+
}
65+
66+
public Pleietrengende getPleietrengende() {
67+
return pleietrengende;
68+
}
69+
70+
@Override
71+
public Person getAnnenPart() {
72+
return null;
73+
}
74+
75+
@Override
76+
public Periode getSøknadsperiode() {
77+
//TODO utlede omsluttende periode
78+
return null;
79+
}
80+
81+
public Arbeidstid getArbeidstid() {
82+
return arbeidstid;
83+
}
84+
85+
public OpptjeningAktivitet getOpptjeningAktivitet() {
86+
return opptjeningAktivitet;
87+
}
88+
89+
public Bosteder getBosteder() {
90+
return bosteder;
91+
}
92+
93+
public Utenlandsopphold getUtenlandsopphold() {
94+
return utenlandsopphold;
95+
}
96+
97+
public PleipengerLivetsSluttfase medPleietrengende(Pleietrengende pleietrengende) {
98+
this.pleietrengende = Objects.requireNonNull(pleietrengende, "pleietrengende");
99+
return this;
100+
}
101+
102+
public PleipengerLivetsSluttfase medArbeidstid(Arbeidstid arbeidstid) {
103+
this.arbeidstid = Objects.requireNonNull(arbeidstid, "arbeidstid");
104+
return this;
105+
}
106+
107+
public PleipengerLivetsSluttfase medOpptjeningAktivitet(OpptjeningAktivitet opptjeningAktivitet) {
108+
this.opptjeningAktivitet = Objects.requireNonNull(opptjeningAktivitet, "opptjeningAktivitet");
109+
return this;
110+
}
111+
112+
public PleipengerLivetsSluttfase medBosteder(Bosteder bosteder) {
113+
this.bosteder = Objects.requireNonNull(bosteder, "bosteder");
114+
return this;
115+
}
116+
117+
public PleipengerLivetsSluttfase medUtenlandsopphold(Utenlandsopphold utenlandsopphold) {
118+
this.utenlandsopphold = Objects.requireNonNull(utenlandsopphold, "utenlandsopphold");
119+
return this;
120+
}
121+
}

0 commit comments

Comments
 (0)