(ns beherbergung.model.offer-mapping.lifeline
  (:require [clojure.spec.alpha :as s]
            [beherbergung.model.offer :refer [int_string]]
            [clojure.string :refer [split]]))

(defn JaNein->bool [JaNein]
  ({"Ja" true "Nein" false} JaNein))

(def mapping {:id_tmp #(or (not-empty (get % "E-Mail")) (get % "Telefonnummer"))

              :time_from_str "frühestes Einzugsdatum"
              :time_duration_str "Möglicher Aufenthalt (Dauer)"  ;; TODO: the duration is not parsed till now

              :beds ["Verfügbare Betten" #(s/conform int_string %)]
              :languages ["Sprachen (sprechen / verstehen)" #(split % #"\n")]

              :place_country "Land"
              :place_city "Ort"
              :place_zip "PLZ"
              :place_street "Straße"
              :place_street_number"Hausnummer"

              :accessible ["Ist die Unterkunft rollstuhlgerecht?" JaNein->bool]
              :animals_allowed ["Haustiere erlaubt?" JaNein->bool]
              :animals_present ["Sind Haustiere im Haushalt vorhanden?" JaNein->bool]

              :contact_name_full "Name"
              :contact_phone "Telefonnummer"
              :contact_email "E-Mail"
              :note "Nachricht"})
