export interface Soknad { id: number; forrige: number; forsendelsesversjon: string; organisasjonsnummer: Organisasjonsnummer; prosjekttittel: string; soknadsdokument: Soknadsdokument; soknadstatus: string; tilleggsinformasjon: Soknadsdokument; vegarbeid: Vegarbeid; opprettet: string; endret: string; innsendtTidspunkt: string; versjon: number; opprettetNavn: string; endretNavn: string; } export interface Vegarbeid { arbeidssted: Arbeidssted; plantype: string; kontakter: Kontakter[]; vegarbeidsperiode: Vegarbeidsperiode; vegarbeidsbeskrivelse: Vegarbeidsbeskrivelse; vegarbeidssted: Vegarbeidssted; varslingsplan: Varslingsplan; erKompetanseBekreftet: boolean; } interface Varslingsplan { vedlegg: Vedlegg[]; } interface Vegarbeidssted { vegarbeidsposisjoner: Vegarbeidsposisjoner[]; omraadeGenerellPlan: OmraadeGenerellPlan; } export interface OmraadeGenerellPlan { kontraktsomraade: Kontraktsomraade; fylker: Fylke[]; vegtyper: string[]; } export interface Fylke { fylkesnavn: string; fylkesnummer: string; kommuner: Kommune[]; } export interface Kontraktsomraade { fylker: string[]; navn: string; } export interface Vegarbeidsposisjoner { avstand: number; veglenkesekvens: Veglenkesekvens; vegsystemreferanse: Vegsystemreferanse; koordinat: Punkter; kommune: Kommune; fartsgrenser: Fartsgrenser[]; } type TiltakKeys = 'stengt_veg' | 'trafikkregulering' | 'trafikkregulering_for_myke_trafikanter'; interface Vegarbeidsbeskrivelse { arbeidstype: Arbeidstype; trafikantgrupper: Trafikantgrupper; generelleTiltak?: { [key in TiltakKeys]: Tiltak; }; spesielleTiltak?: { [key in TiltakKeys]: Tiltak; }; beredskapsplan?: boolean; arbeidIBevegelse?: boolean; } export interface Tiltak { valgt: boolean; alternativer: Alternativer[]; } export type TILTAK_ARBEIDSTID = 'INNENFOR_ARBEIDSTID' | 'UTENFOR_ARBEIDSTID'; export interface Alternativer { felt: string; arbeidstider: TILTAK_ARBEIDSTID[]; tekst: string; valgt: boolean; vedlagteSkisserIder: string[]; harEkstraSpoersmaal?: boolean; ekstraSpoersmaalValgt?: boolean; } export interface Trafikantgrupper { spesiellPlan: TrafikantgrupperForPlan; generellPlan: TrafikantgrupperForPlan; } interface TrafikantgrupperForPlan { trafikantgrupper: string[]; andre?: TrafikantgruppeAndre; } export interface TrafikantgruppeAndre { valgt?: boolean; tittel?: string; } export interface Arbeidstype { spesiellPlan: SpesiellPlan; generellPlan: GenerellPlan; } interface SpesiellPlan { arbeidstyper: Arbeidstyper[]; annet: AnnetArbeidstype; beskrivelse: string; } interface GenerellPlan { arbeidstyper: Arbeidstyper[]; annet: AnnetArbeidstype; beskrivelse: string; } interface AnnetArbeidstype { beskrivelse: string; valgt: boolean; tittel: string; } interface Arbeidstyper { felt: string; tekst: string; valgt: boolean; } export interface Vegarbeidsperiode { arbeidsvarighet: Arbeidsvarighet; fra: string; til: string; typeDager: string; arbeidstidsperioder: Arbeidstidsperioder[]; } interface Arbeidstidsperioder { fra: Fra2; til: Fra2; } interface Fra2 { timer: number; minutter: number; } interface Arbeidsvarighet { varighet: number | string; periodisering: string; } interface Kontakter { type: string; etternavn?: string; fornavn?: string; kontaktinformasjon?: Kontaktinformasjon; navn: string; aktortype: string; organisasjonsnummer?: Organisasjonsnummer; kontaktperson?: Kontaktperson; kompetansebevis?: Kompetansebevis2; } interface Kompetansebevis2 { kompetansebevis: Vedlegg; utlopsdato: string; } export interface Vedlegg { id: string; filnavn: string; mimetype: string; storrelse: number; } interface Kontaktperson { type: string; kontaktinformasjon: Kontaktinformasjon2; } interface Kontaktinformasjon2 { epostadresse: string; } interface Kontaktinformasjon { epostadresse: string; mobiltelefonnummer: string; } interface Arbeidssted { arbeidsruter: Arbeidsruter[]; } export interface Arbeidsruter { punkter: Punkter[]; vegposisjoner: Vegposisjoner[]; vegstrekninger: Vegstrekninger[]; traffAlleOppslag: boolean; } interface Vegstrekninger { fra: Fra; til: Fra; geometri: Punkter[]; fartsgrenser: Fartsgrenser[]; trafikkmengder: Trafikkmengder[]; } interface Trafikkmengder { andelLangeKjoretoy: number; arsdognstrafikk: number; gjelderAr: number; } interface Fartsgrenser { fartsgrense: number; gyldigFraDato: string; } interface Fra { avstand: number; veglenkesekvens: Veglenkesekvens; vegsystemreferanse: Vegsystemreferanse; kommune: Kommune; } interface Vegposisjoner { avstand: number; veglenkesekvens: Veglenkesekvens; vegsystemreferanse: Vegsystemreferanse; koordinat: Punkter; kommune: Kommune; } interface Kommune { kommunenummer: string; kommunenavn: string; } interface Vegsystemreferanse { vegsystem: Vegsystem; strekning: Strekning; } interface Strekning { id: string; arm: boolean; delstrekning: number; meter: number; strekning: number; trafikantgruppe: string; versjon: string; } interface Vegsystem { fase: string; id: string; nummer: string; vegkategori: string; versjon: string; } interface Veglenkesekvens { veglenkesekvens: number; relativPosisjon: number; } interface Punkter { x: number; y: number; z: number; srid: string; } interface Soknadsdokument { filnavn: string; vedlegg: Vedlegg[]; id: string; kommentar?: string; } interface Organisasjonsnummer { identifikator: string; } export {};