From 697b444f3c3378f983861e51960b122d0a230c74 Mon Sep 17 00:00:00 2001 From: Ugur Alpay Cenar Date: Tue, 3 Sep 2024 14:36:37 +0300 Subject: [PATCH] =?UTF-8?q?Legg=20til=20s=C3=B8knadsid=20p=C3=A5=20bidrag?= =?UTF-8?q?=20beregning=20request?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../felles/BidragBeregningRequestDto.kt | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BidragBeregningRequestDto.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BidragBeregningRequestDto.kt index 8ff8395..ba469f9 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BidragBeregningRequestDto.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BidragBeregningRequestDto.kt @@ -1,23 +1,50 @@ package no.nav.bidrag.transport.behandling.beregning.felles +import jakarta.validation.Constraint +import jakarta.validation.ConstraintValidator +import jakarta.validation.ConstraintValidatorContext import jakarta.validation.Valid import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.Size import no.nav.bidrag.domene.enums.vedtak.Stønadstype import no.nav.bidrag.domene.ident.Personident import java.time.LocalDate +import kotlin.reflect.KClass data class BidragBeregningRequestDto( @field:Valid val hentBeregningerFor: List, ) { + @GyldigBidragBeregning data class HentBidragBeregning( @field:NotBlank(message = "Saksnummer kan ikke være blank") @field:Size(max = 7, min = 7, message = "Saksnummer må bestå av 7 tegn") val saksnummer: String, @field:GyldigPersonidentLengde val personidentBarn: Personident, - val datoSøknad: LocalDate, + val datoSøknad: LocalDate? = null, + val søknadsid: String? = null, val stønadstype: Stønadstype, ) } + +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.RUNTIME) +@Constraint(validatedBy = arrayOf(GyldigBidragBeregningValidator::class)) +annotation class GyldigBidragBeregning( + val message: String = "Enten datoSøknad eller søknadsid må settes", + val groups: Array> = [], + val payload: Array> = [], +) + +class GyldigBidragBeregningValidator : ConstraintValidator { + override fun isValid( + input: BidragBeregningRequestDto.HentBidragBeregning?, + constraintValidatorContext: ConstraintValidatorContext, + ): Boolean { + if (input == null) { + return false + } + return input.datoSøknad == null && input.søknadsid.isNullOrEmpty() + } +}