1
1
package no .nav .k9 .søknad .ytelse .omsorgspenger .v1 ;
2
2
3
- import com .fasterxml .jackson .annotation .*;
3
+ import java .util .ArrayList ;
4
+ import java .util .List ;
5
+
6
+ import javax .validation .Valid ;
7
+ import javax .validation .constraints .NotNull ;
8
+ import javax .validation .constraints .Size ;
9
+
10
+ import com .fasterxml .jackson .annotation .JsonAutoDetect ;
11
+ import com .fasterxml .jackson .annotation .JsonCreator ;
12
+ import com .fasterxml .jackson .annotation .JsonIgnoreProperties ;
13
+ import com .fasterxml .jackson .annotation .JsonProperty ;
14
+ import com .fasterxml .jackson .annotation .JsonTypeName ;
15
+
4
16
import no .nav .k9 .søknad .PeriodeValidator ;
5
17
import no .nav .k9 .søknad .felles .Feil ;
6
18
import no .nav .k9 .søknad .felles .aktivitet .ArbeidAktivitet ;
7
19
import no .nav .k9 .søknad .felles .fravær .FraværPeriode ;
8
20
import no .nav .k9 .søknad .felles .personopplysninger .Barn ;
9
21
import no .nav .k9 .søknad .felles .personopplysninger .Bosteder ;
10
22
import no .nav .k9 .søknad .felles .personopplysninger .Utenlandsopphold ;
23
+ import no .nav .k9 .søknad .felles .type .Periode ;
11
24
import no .nav .k9 .søknad .felles .type .Person ;
12
25
import no .nav .k9 .søknad .ytelse .Ytelse ;
13
26
import no .nav .k9 .søknad .ytelse .YtelseValidator ;
14
27
15
- import javax .validation .Valid ;
16
- import javax .validation .constraints .NotNull ;
17
- import javax .validation .constraints .Size ;
18
- import java .util .ArrayList ;
19
- import java .util .List ;
20
-
21
28
@ JsonIgnoreProperties (ignoreUnknown = true )
22
29
@ JsonAutoDetect (fieldVisibility = JsonAutoDetect .Visibility .NONE , getterVisibility = JsonAutoDetect .Visibility .NONE , setterVisibility = JsonAutoDetect .Visibility .NONE , isGetterVisibility = JsonAutoDetect .Visibility .NONE , creatorVisibility = JsonAutoDetect .Visibility .NONE )
23
30
@ JsonTypeName (Ytelse .OMSORGSPENGER_UTBETALING )
@@ -39,13 +46,13 @@ public class OmsorgspengerUtbetaling implements Ytelse {
39
46
@ Valid
40
47
@ JsonProperty (value = "utenlandsopphold" )
41
48
private Utenlandsopphold utenlandsopphold ;
42
-
49
+
43
50
@ Valid
44
51
@ NotNull
45
- @ Size (min = 1 , message = "Minst 1 fraværsperiode må oppgis" )
52
+ @ Size (min = 1 , message = "Minst 1 fraværsperiode må oppgis" )
46
53
@ JsonProperty (value = "fraværsperioder" , required = true )
47
54
private final List <FraværPeriode > fraværsperioder ;
48
-
55
+
49
56
@ JsonCreator
50
57
public OmsorgspengerUtbetaling (@ JsonProperty ("fosterbarn" ) @ Valid List <Barn > fosterbarn ,
51
58
@ JsonProperty (value = "aktivitet" , required = true ) @ Valid @ NotNull ArbeidAktivitet opptjening ,
@@ -70,6 +77,14 @@ public ArbeidAktivitet getAktivitet() {
70
77
return fraværsperioder ;
71
78
}
72
79
80
+ /** har ikke egen søknadsperiode for omsorgspenger, men angir på bakggrunn av angitte fraværsperioder. */
81
+ @ Override
82
+ public Periode getSøknadsperiode () {
83
+ var fom = fraværsperioder .stream ().min (FraværPeriode ::compareTo ).orElseThrow ().getPeriode ().getFraOgMed ();
84
+ var tom = fraværsperioder .stream ().max (FraværPeriode ::compareTo ).orElseThrow ().getPeriode ().getTilOgMed ();
85
+ return new Periode (fom , tom );
86
+ }
87
+
73
88
@ Override
74
89
public Type getType () {
75
90
return Type .OMSORGSPENGER_UTBETALING ;
@@ -79,25 +94,27 @@ public Type getType() {
79
94
public List <Person > getBerørtePersoner () {
80
95
return List .copyOf (fosterbarn );
81
96
}
82
-
97
+
83
98
@ Override
84
99
public YtelseValidator getValidator () {
85
100
return new OmsorgspengerUtbetalingValidator ();
86
101
}
87
102
88
- @ Size (max = 0 , message = "${validatedValue}" )
103
+ @ Size (max = 0 , message = "${validatedValue}" )
89
104
private List <Feil > validerAngittUtenlandsopphold () {
90
- if (utenlandsopphold == null ) List .of ();
105
+ if (utenlandsopphold == null )
106
+ List .of ();
91
107
return new PeriodeValidator ().validerIkkeTillattOverlapp (utenlandsopphold .perioder , "utenlandsopphold.perioder" );
92
108
}
93
109
94
- @ Size (max = 0 , message = "${validatedValue}" )
110
+ @ Size (max = 0 , message = "${validatedValue}" )
95
111
private List <Feil > validerAngittBosteder () {
96
- if (bosteder == null ) return List .of ();
112
+ if (bosteder == null )
113
+ return List .of ();
97
114
return new PeriodeValidator ().validerIkkeTillattOverlapp (bosteder .perioder , "bosteder.perioder" );
98
115
}
99
116
100
- @ Size (max = 0 , message = "${validatedValue}" )
117
+ @ Size (max = 0 , message = "${validatedValue}" )
101
118
private List <Feil > getValiderAngittFosterbarn () {
102
119
var barn = this .fosterbarn ;
103
120
if (barn == null || barn .isEmpty ())
0 commit comments