diff --git a/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/authfaktka/AuthOpplysninger.kt b/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/authfaktka/AuthOpplysninger.kt index fbbf78de..a67bb5d7 100644 --- a/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/authfaktka/AuthOpplysninger.kt +++ b/apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/authfaktka/AuthOpplysninger.kt @@ -1,39 +1,40 @@ package no.nav.paw.arbeidssokerregisteret.application.authfaktka +import no.nav.paw.arbeidssokerregisteret.application.opplysninger.Effect import no.nav.paw.arbeidssokerregisteret.application.opplysninger.Opplysning sealed interface AuthOpplysning: Opplysning { - data object IkkeSammeSomInnloggerBruker : AuthOpplysning { + data object IkkeSammeSomInnloggerBruker : AuthOpplysning, Effect.Negative { override val id = "IKKE_SAMME_SOM_INNLOGGER_BRUKER" override val beskrivelse = "Start/stopp av periode er ikke på samme bruker som er innlogget" } - data object SammeSomInnloggetBruker : AuthOpplysning { + data object SammeSomInnloggetBruker : AuthOpplysning, Effect.Positive { override val id = "SAMME_SOM_INNLOGGET_BRUKER" override val beskrivelse = "Start/stopp av periode er på samme bruker som er innlogget" } - data object TokenXPidIkkeFunnet : AuthOpplysning { + data object TokenXPidIkkeFunnet : AuthOpplysning, Effect.Neutral { override val id = "TOKENX_PID_IKKE_FUNNET" override val beskrivelse = "Innlogget bruker er ikke en logget inn via TOKENX med PID(dvs ikke sluttbruker via ID-Porten)" } - data object AnsattIkkeTilgang : AuthOpplysning { + data object AnsattIkkeTilgang : AuthOpplysning, Effect.Negative { override val id = "ANSATT_IKKE_TILGANG" override val beskrivelse = "Innlogget bruker er en NAV-ansatt uten tilgang til bruker som start/stopp av periode utføres på" } - data object AnsattTilgang : AuthOpplysning { + data object AnsattTilgang : AuthOpplysning, Effect.Positive { override val id = "ANSATT_TILGANG" override val beskrivelse = "Innlogget bruker er en NAV-ansatt med tilgang til bruker som start/stopp av periode utføres på" } - data object IkkeAnsatt : AuthOpplysning { + data object IkkeAnsatt : AuthOpplysning, Effect.Neutral { override val id = "IKKE_ANSATT" override val beskrivelse = "Innlogget bruker er ikke en NAV-ansatt" } diff --git a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Effect.kt b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Effect.kt new file mode 100644 index 00000000..e0b261f6 --- /dev/null +++ b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Effect.kt @@ -0,0 +1,11 @@ +package no.nav.paw.arbeidssokerregisteret.application.opplysninger + +/** + * Enkelt interface for å representere en effekt av en opplysning eller andre ting. + * Feks ved bruk på opplysninger vil 'Negative' indikere at denne opplysningen går i rettning av å ikke kunne starte/stoppes en periode. + */ +sealed interface Effect { + interface Negative: Effect + interface Positive: Effect + interface Neutral: Effect +} \ No newline at end of file diff --git a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Opplysninger.kt b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Opplysninger.kt index 7cd7a808..2b4cd132 100644 --- a/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Opplysninger.kt +++ b/domain/arbeidssoeker-regler/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/opplysninger/Opplysninger.kt @@ -9,150 +9,150 @@ interface Opplysning { infix operator fun Opplysning.plus(opplysning: Opplysning): Set = setOf(this, opplysning) sealed interface DomeneOpplysning: Opplysning { - data object ErForhaandsgodkjent : DomeneOpplysning { + data object ErForhaandsgodkjent : DomeneOpplysning, Effect.Positive { override val id = "FORHAANDSGODKJENT_AV_ANSATT" override val beskrivelse = "Registrering er forhåndsgodkjent av NAV-ansatt" } - data object ErOver18Aar : DomeneOpplysning { + data object ErOver18Aar : DomeneOpplysning, Effect.Positive { override val id = "ER_OVER_18_AAR" override val beskrivelse = "Personen start/stopp av periode utføres på er over 18 år" } - data object ErUnder18Aar : DomeneOpplysning { + data object ErUnder18Aar : DomeneOpplysning, Effect.Negative { override val id = "ER_UNDER_18_AAR" override val beskrivelse = "Personen start/stopp av periode utføres på er under 18 år" } - data object ErEuEoesStatsborger : DomeneOpplysning { + data object ErEuEoesStatsborger : DomeneOpplysning, Effect.Positive { override val id = "ER_EU_EOES_STATSBORGER" override val beskrivelse = "Personen start/stopp av periode utføres på er EØS/EU statsborger" } - data object ErGbrStatsborger : DomeneOpplysning { + data object ErGbrStatsborger : DomeneOpplysning, Effect.Positive { override val id = "ER_GBR_STATSBORGER" override val beskrivelse = "Personen start/stopp av periode utføres på er britisk statsborger" } - data object UkjentFoedselsdato : DomeneOpplysning { + data object UkjentFoedselsdato : DomeneOpplysning, Effect.Negative { override val id = "UKJENT_FOEDSELSDATO" override val beskrivelse = "Personen start/stopp av periode utføres på har ukjent fødselsdato" } - data object UkjentFoedselsaar : DomeneOpplysning { + data object UkjentFoedselsaar : DomeneOpplysning, Effect.Negative { override val id = "UKJENT_FOEDSELSAAR" override val beskrivelse = "Personen start/stopp av periode utføres på har ukjent fødselsår" } - data object TokenxPidIkkeFunnet : DomeneOpplysning { + data object TokenxPidIkkeFunnet : DomeneOpplysning, Effect.Neutral { override val id = "TOKENX_PID_IKKE_FUNNET" override val beskrivelse = "Innlogget bruker er ikke en logget inn via TOKENX med PID(dvs ikke sluttbruker via ID-Porten)" } - data object OpphoertIdentitet : DomeneOpplysning { + data object OpphoertIdentitet : DomeneOpplysning, Effect.Negative { override val id = "OPPHOERT_IDENTITET" override val beskrivelse = "Personen start/stopp av periode utføres på har opphørt identitet(annulert i Folkeregisteret)" } - data object IkkeBosatt : DomeneOpplysning { + data object IkkeBosatt : DomeneOpplysning, Effect.Negative { override val id = "IKKE_BOSATT" override val beskrivelse = "Personen start/stopp av periode utføres på er ikke bosatt i Norge(eventuelt er innlytting anullert)" } - data object ErDoed : DomeneOpplysning { + data object ErDoed : DomeneOpplysning, Effect.Negative { override val id = "DOED" override val beskrivelse = "Personen start/stopp av periode utføres på er død" } - data object ErSavnet : DomeneOpplysning { + data object ErSavnet : DomeneOpplysning, Effect.Negative { override val id = "SAVNET" override val beskrivelse = "Personen start/stopp av periode utføres på er savnet" } - data object HarNorskAdresse : DomeneOpplysning { + data object HarNorskAdresse : DomeneOpplysning, Effect.Positive { override val id = "HAR_NORSK_ADRESSE" override val beskrivelse = "Personen start/stopp av periode utføres på har norsk adresse" } - data object HarUtenlandskAdresse : DomeneOpplysning { + data object HarUtenlandskAdresse : DomeneOpplysning, Effect.Negative { override val id = "HAR_UTENLANDSK_ADRESSE" override val beskrivelse = "Personen start/stopp av periode utføres på har utenlandsk adresse" } - data object IngenAdresseFunnet : DomeneOpplysning { + data object IngenAdresseFunnet : DomeneOpplysning, Effect.Negative { override val id = "INGEN_ADRESSE_FUNNET" override val beskrivelse = "Personen start/stopp av periode utføres på har ingen adresse i våre systemer" } - data object BosattEtterFregLoven : DomeneOpplysning { + data object BosattEtterFregLoven : DomeneOpplysning, Effect.Positive { override val id = "BOSATT_ETTER_FREG_LOVEN" override val beskrivelse = "Personen start/stopp av periode utføres på er bosatt i Norge i henhold til Folkeregisterloven" } - data object Dnummer : DomeneOpplysning { + data object Dnummer : DomeneOpplysning, Effect.Positive { override val id = "DNUMMER" override val beskrivelse = "Personen start/stopp av periode utføres på har D-nummer" } - data object UkjentForenkletFregStatus : DomeneOpplysning { + data object UkjentForenkletFregStatus : DomeneOpplysning, Effect.Negative { override val id = "UKJENT_FORENKLET_FREG_STATUS" override val beskrivelse = "Personen start/stopp av periode utføres på har ukjent forenklet folkeregisterstatus" } - data object HarGyldigOppholdstillatelse : DomeneOpplysning { + data object HarGyldigOppholdstillatelse : DomeneOpplysning, Effect.Positive { override val id = "HAR_GYLDIG_OPPHOLDSTILLATELSE" override val beskrivelse = "Personen start/stopp av periode utføres på har gyldig oppholdstillatelse" } - data object OppholdstillatelseUtgaaatt : DomeneOpplysning { + data object OppholdstillatelseUtgaaatt : DomeneOpplysning, Effect.Negative { override val id = "OPPHOLDSTILATELSE_UTGAATT" override val beskrivelse = "Personen start/stopp av periode utføres på har oppholdstillatelse som er utgått" } - data object BarnFoedtINorgeUtenOppholdstillatelse : DomeneOpplysning { + data object BarnFoedtINorgeUtenOppholdstillatelse : DomeneOpplysning, Effect.Negative { override val id = "BARN_FOEDT_I_NORGE_UTEN_OPPHOLDSTILLATELSE" override val beskrivelse = "Personen start/stopp av periode utføres på er født i Norge uten oppholdstillatelse" } - data object IngenInformasjonOmOppholdstillatelse : DomeneOpplysning { + data object IngenInformasjonOmOppholdstillatelse : DomeneOpplysning, Effect.Neutral { override val id = "INGEN_INFORMASJON_OM_OPPHOLDSTILLATELSE" override val beskrivelse = "Personen start/stopp av periode utføres på har ingen informasjon om oppholdstillatelse" } - data object UkjentStatusForOppholdstillatelse : DomeneOpplysning { + data object UkjentStatusForOppholdstillatelse : DomeneOpplysning, Effect.Negative { override val id = "UKJENT_STATUS_FOR_OPPHOLDSTILLATELSE" override val beskrivelse = "Personen start/stopp av periode utføres på har ukjent status for oppholdstillatelse" } - data object PersonIkkeFunnet : DomeneOpplysning { + data object PersonIkkeFunnet : DomeneOpplysning, Effect.Negative { override val id = "PERSON_IKKE_FUNNET" override val beskrivelse = "Personen start/stopp av periode utføres på er ikke funnet i våre systemer" } - data object SisteFlyttingVarUtAvNorge : DomeneOpplysning { + data object SisteFlyttingVarUtAvNorge : DomeneOpplysning, Effect.Negative { override val id = "SISTE_FLYTTING_VAR_UT_AV_NORGE" override val beskrivelse = "Personen start/stopp av periode utføres på har en eller flere flyttinger hvorav den siste var ut av Norge" } - data object SisteFlyttingVarInnTilNorge : DomeneOpplysning { + data object SisteFlyttingVarInnTilNorge : DomeneOpplysning, Effect.Positive { override val id = "SISTE_FLYTTING_VAR_INN_TIL_NORGE" override val beskrivelse = "Personen start/stopp av periode utføres på har en eller flere flyttinger hvorav den siste var inn til Norge" } - data object IkkeMuligAAIdentifisereSisteFlytting : DomeneOpplysning { + data object IkkeMuligAAIdentifisereSisteFlytting : DomeneOpplysning, Effect.Neutral { override val id = "IKKE_MULIG_AA_IDENTIFISERE_SISTE_FLYTTING" override val beskrivelse = "Personen start/stopp av periode utføres på har en eller flere flyttinger hvorav den siste ikke er mulig å identifisere" } - data object IngenFlytteInformasjon : DomeneOpplysning { + data object IngenFlytteInformasjon : DomeneOpplysning, Effect.Neutral { override val id = "INGEN_FLYTTE_INFORMASJON" override val beskrivelse = "Personen start/stopp av periode utføres på har ingen flytte informasjon" }