import { PaginationMeta } from '@msfa-models/pagination-meta.model';

export interface DeltagareAvropResponse {
  id: string;
  fullName: string;
  tjanst: string;
  startDate: Date;
  endDate: Date;
  originalEndDate: string | null;
  sprakstod: string | null;
  tolkbehov: string | null;
  utforandeVerksamhet: string;
  utforandeAdress: string;
  sparkod: string;
  genomforandeReferens: number;
  participationFrequency: number;
  receivedTimestamp: Date;
  handledareCiamUserId: string | null;
  handledare: string;
  hasAvbrott: boolean;
  hasGemensamPlanering: boolean;
  kommun: string;
  personnummer: string;
}

export interface AvropResponse {
  id: string;
  deltagare: string;
  genomforandeReferens: number;
  kommun: string;
  adress: string;
  tjansteNamn: string;
  startdatumAvrop: Date;
  slutdatumAvrop: Date;
  tolkbehov: string | null;
  sprakstod: string | null;
  sparkod: string;

  // These are not used, but are available inside the response
  leverantorId: number;
  organisationsnummer: string;
  utforandeVerksamhetId: number;
  utforandeverksamhet: string;
  kommunKod: string;
  utforandeAdressId: number;
  bokningsId: number;
  ordernummer: string;
  personnummer: string;
  sokandeId: number;
  tjanstekod: string;
  deltagandeGrad: number;
  sparNamn: string;
  aktnummerDiariet: string;
  handledareCiamUserId: string | null;
  handledare: string | null;
  exported: boolean;
  avbrottHandelseId: string | null;
  avbrottHandelse: string | null;
  handelser: unknown[] | null;
  handlingar: unknown[] | null;
  recievedTimestamp: Date;
  isDeltagare: boolean;
  hasGemensamPlanering: boolean;
  hasAvbrott: boolean;
}

export interface AvropAndMetaResponse {
  data: AvropResponse[];
  meta: PaginationMeta;
}
