import { Prisma } from '@prisma/client';
import { TourRaw } from '../source.interface';

export class TourExtractor {
  public static extract(tour: TourRaw): Partial<Prisma.TourSourceCreateInput> {
    const {
      _id,
      check,
      createTime,
      lastUpdate,
      empfangenVonId,
      endgen,
      serienId,
      serienKategorName,
      serienKategorie,
      zadStatus,
      abrDate,
      abrNum,
      abrTime,
      ausrueckZeit,
      startTime,
      startDate,
      date,
      date_iso,
      dauergenehmigung,
      direction,
      distanceValue,
      besetztKm,
      gefahren,
      gesamtPreis,
      infektion,
      itDesc,
      itKrz,
      itName,
      kkId,
      krankenkasse,
      patId,
      patName,
      patSurname,
      patStreet,
      patZip,
      patCity,
      startInstitution,
      startStreet,
      startZip,
      startCity,
      targetInstitution,
      targetStreet,
      targetCity,
      targetZip,
      transportKrz,
      transportName,
      transportart,
      verordnungsId,
      verordnungsName,
      type,
      startBegin,
      startEnd,
      frei,
      ziel,
      zielBegin,
      endTime,
      endDate,
      einsatzNummer,
      carName,
      carNo,
      beifahrer,
      beifahrerName,
      fahrer,
      fahrerName,
      color,
    } = tour;
    return {
      id: _id ? `${_id}` : undefined,
      check: check ? `${check}` : undefined,
      createTime: createTime ? `${createTime}` : undefined,
      lastUpdate: lastUpdate ? `${lastUpdate}` : undefined,
      empfangenVonId: empfangenVonId ? `${empfangenVonId}` : undefined,
      endgen: endgen ? `${endgen}` : undefined,
      serienId: serienId ? `${serienId}` : undefined,
      serienKategorName: serienKategorName ? `${serienKategorName}` : undefined,
      serienKategorie: serienKategorie ? `${serienKategorie}` : undefined,
      zadStatus: zadStatus ? `${zadStatus}` : undefined,
      abrDate: abrDate ? `${abrDate}` : undefined,
      abrNum: abrNum ? `${abrNum}` : undefined,
      abrTime: abrTime ? `${abrTime}` : undefined,
      ausrueckZeit: ausrueckZeit ? `${ausrueckZeit}` : undefined,
      startTime: startTime ? `${startTime}` : undefined,
      startDate: startDate ? `${startDate}` : undefined,
      date: date ? `${date}` : undefined,
      date_iso: date_iso ? `${date_iso}` : undefined,
      dauergenehmigung: dauergenehmigung ? `${dauergenehmigung}` : undefined,
      direction: direction ? `${direction}` : undefined,
      distanceValue: distanceValue ? `${distanceValue}` : undefined,
      besetztKm: besetztKm ? `${besetztKm}` : undefined,
      gefahren: gefahren ? `${gefahren}` : undefined,
      gesamtPreis: gesamtPreis ? `${gesamtPreis}` : undefined,
      infektion: infektion ? `${infektion}` : undefined,
      itDesc: itDesc ? `${itDesc}` : undefined,
      itKrz: itKrz ? `${itKrz}` : undefined,
      itName: itName ? `${itName}` : undefined,
      kkId: kkId ? `${kkId}` : undefined,
      krankenkasse: krankenkasse ? `${krankenkasse}` : undefined,
      patId: patId ? `${patId}` : undefined,
      patName: patName ? `${patName}` : undefined,
      patSurname: patSurname ? `${patSurname}` : undefined,
      patStreet: patStreet ? `${patStreet}` : undefined,
      patZip: patZip ? `${patZip}` : undefined,
      patCity: patCity ? `${patCity}` : undefined,
      startInstitution: startInstitution ? `${startInstitution}` : undefined,
      startStreet: startStreet ? `${startStreet}` : undefined,
      startZip: startZip ? `${startZip}` : undefined,
      startCity: startCity ? `${startCity}` : undefined,
      targetInstitution: targetInstitution ? `${targetInstitution}` : undefined,
      targetStreet: targetStreet ? `${targetStreet}` : undefined,
      targetCity: targetCity ? `${targetCity}` : undefined,
      targetZip: targetZip ? `${targetZip}` : undefined,
      transportKrz: transportKrz ? `${transportKrz}` : undefined,
      transportName: transportName ? `${transportName}` : undefined,
      transportart: transportart ? `${transportart}` : undefined,
      verordnungsId: verordnungsId ? `${verordnungsId}` : undefined,
      verordnungsName: verordnungsName ? `${verordnungsName}` : undefined,
      type: type ? `${type}` : undefined,
      startBegin: startBegin ? `${startBegin}` : undefined,
      startEnd: startEnd ? `${startEnd}` : undefined,
      frei: frei ? `${frei}` : undefined,
      ziel: ziel ? `${ziel}` : undefined,
      zielBegin: zielBegin ? `${zielBegin}` : undefined,
      endTime: endTime ? `${endTime}` : undefined,
      endDate: endDate ? `${endDate}` : undefined,
      einsatzNummer: einsatzNummer ? `${einsatzNummer}` : undefined,
      carName: carName ? `${carName}` : undefined,
      carNo: carNo ? `${carNo}` : undefined,
      beifahrer: beifahrer ? `${beifahrer}` : undefined,
      beifahrerName: beifahrerName ? `${beifahrerName}` : undefined,
      fahrer: fahrer ? `${fahrer}` : undefined,
      fahrerName: fahrerName ? `${fahrerName}` : undefined,
      color: color ? `${color}` : undefined,
    };
  }
}
