import { IconDefinition } from '@fortawesome/fontawesome-svg-core'
import { faFaceSmile } from '@fortawesome/pro-duotone-svg-icons/faFaceSmile'
import { faFaceFrown } from '@fortawesome/pro-duotone-svg-icons/faFaceFrown'
import { faFacePouting } from '@fortawesome/pro-duotone-svg-icons/faFacePouting'
import { faFaceDisappointed } from '@fortawesome/pro-duotone-svg-icons/faFaceDisappointed'
import { faFaceMeh } from '@fortawesome/pro-duotone-svg-icons/faFaceMeh'
import { faFaceAnxiousSweat } from '@fortawesome/pro-duotone-svg-icons/faFaceAnxiousSweat'
import { faFaceSmileRelaxed } from '@fortawesome/pro-duotone-svg-icons/faFaceSmileRelaxed'
import { faFaceRelieved } from '@fortawesome/pro-duotone-svg-icons/faFaceRelieved'
import { faFaceScream } from '@fortawesome/pro-duotone-svg-icons/faFaceScream'
import { faFaceConfounded } from '@fortawesome/pro-duotone-svg-icons/faFaceConfounded'

export type PossibleMood =
  'happy'
  | 'relaxed'
  | 'content'
  | 'sad'
  | 'angry'
  | 'disappointed'
  | 'empty'
  | 'scared'
  | 'nervous'
  | 'panic'

export type Mood = {
  label: string,
  id: PossibleMood,
  icon: IconDefinition,
}

const happy : Mood = {
  label: 'Glücklich',
  id: 'happy',
  icon: faFaceSmile,
}

const relaxed : Mood = {
  label: 'Entspannt',
  id: 'relaxed',
  icon: faFaceRelieved,
}

const content : Mood = {
  label: 'Zufrieden',
  id: 'content',
  icon: faFaceSmileRelaxed,
}

const sad : Mood = {
  label: 'Traurig',
  id: 'sad',
  icon: faFaceFrown,
}

const angry : Mood = {
  label: 'Wütend',
  id: 'angry',
  icon: faFacePouting,
}

const disappointed : Mood = {
  label: 'Enttäuscht',
  id: 'disappointed',
  icon: faFaceDisappointed,
}

const empty : Mood = {
  label: 'Leer',
  id: 'empty',
  icon: faFaceMeh,
}

const scared : Mood = {
  label: 'Ängstlich',
  id: 'scared',
  icon: faFaceAnxiousSweat,
}

const nervous : Mood = {
  label: 'Nervös',
  id: 'nervous',
  icon: faFaceConfounded,
}

const panic : Mood = {
  label: 'Panisch',
  id: 'panic',
  icon: faFaceScream,
}

export const moods : Record<PossibleMood, Mood> = {
  happy,
  relaxed,
  content,
  sad,
  angry,
  disappointed,
  empty,
  scared,
  nervous,
  panic,
}