import { SlutredovisningResponse } from '@msfa-models/api/slutredovisning.response.model';

export enum MainOccupation {
  Work = 'work',
  Education = 'education',
  StillUnemployed = 'stillUnemployed',
  ByteTillNyLeverantorIRustaOchMatcha = 'byte till ny leverantör i rusta och matcha',
  Other = 'other',
}

export enum EducationLevel {
  HogskolaEllerUniversitet = 'högskola eller universitet',
  Yrkeshogskola = 'yrkeshögskola',
  KomvuxGymnasiumFolkhogskola = 'komvux, gymnasium eller folkhögskola',
  VetEj = 'vet ej',
  Annat = 'annat',
}

export function educationLevelToString(educationLevel: EducationLevel): string | null {
  switch (educationLevel) {
    case EducationLevel.HogskolaEllerUniversitet:
      return 'Högskola eller universitet';
    case EducationLevel.Yrkeshogskola:
      return 'Yrkeshögskola';
    case EducationLevel.KomvuxGymnasiumFolkhogskola:
      return 'Komvux, gymnasium eller folkhögskola';
    case EducationLevel.VetEj:
      return 'Vet ej';
    case EducationLevel.Annat:
      return 'Annat';
    default:
      return null;
  }
}

export enum StillUnemployedReason {
  SaknarRelevantUtbildning = 'saknar relevant utbildning',
  SaknarArbetslivserfarenhet = 'saknar arbetslivserfarenhet',
  SaknarNatverkOchKontakter = 'saknar nätverk och kontakter',
  BristandeSprakkunskaperISvenska = 'bristande språkkunskaper i svenska',
  KonjukturLaget = 'konjunkturläget',
  Annat = 'annat',
}

export enum EducationLength {
  UpToOneYear = 'upp till ett år',
  OneToTwoYears = 'ett år till två år',
  OverTwoYears = 'två år eller längre',
}

export function educationLengthToString(educationLength: EducationLength): string | null {
  switch (educationLength) {
    case EducationLength.UpToOneYear:
      return 'Upp till ett år';
    case EducationLength.OneToTwoYears:
      return 'Ett år till två år';
    case EducationLength.OverTwoYears:
      return 'Två år eller längre';
    default:
      return null;
  }
}

export enum Anstallningsform {
  Tillsvidare = 'tillsvidareanställning',
  Prov = 'provanstallning',
  Visstid = 'visstidsanställning',
  VetEj = 'vet ej',
  Annat = 'annat',
}

export enum Omfattning {
  Heltid = 'heltid',
  Deltid = 'deltid',
  VetEj = 'vet ej',
}

export function omfattningToString(omfattning: Omfattning): string | null {
  switch (omfattning) {
    case Omfattning.Heltid:
      return 'Heltid';
    case Omfattning.Deltid:
      return 'Deltid';
    case Omfattning.VetEj:
      return 'Vet ej';
    default:
      return null;
  }
}

export type Slutredovisning = SlutredovisningResponse;

export function mainOccupationToString(mainOccupation: MainOccupation): string | null {
  switch (mainOccupation) {
    case MainOccupation.Education:
      return 'Utbildning';
    case MainOccupation.StillUnemployed:
      return 'Fortsatt arbetssökande';
    case MainOccupation.ByteTillNyLeverantorIRustaOchMatcha:
      return 'Byte till ny leverantör i Rusta och matcha';
    case MainOccupation.Other:
      return 'Annat';
    case MainOccupation.Work:
      return 'Arbete';
    default:
      return null;
  }
}
