Files
qualify/qualify-web-ui/lib/Qualify/Data/Event.hs
2022-12-31 08:24:24 -05:00

40 lines
775 B
Haskell

module Qualify.Data.Event
( Event(..)
) where
import qualified Data.List.NonEmpty as NE
import qualified Data.NonEmptyText as NET
import qualified Data.Time as Time
data Event =
Event
{ time :: Time.UTCTime
, details :: EventDetails
}
data EventDetails
= MoodEvent Mood Intensity
| ActivityEvent ActivityType
| ConsumptionEvent Substance Dose
data Mood
= Angry
| Sad
| Happy
| Neutral
data ActivityType
= Cycling Distance
| Running Distance
| Meditation DurationX
| Pushups (NE.NonEmpty WorkoutSet)
newtype Intensity = Intensity Int
newtype Duration = Minutes Int
newtype Distance = Miles Int
newtype Reps = Reps Int
newtype WorkoutSet = WorkoutSet Reps
newtype Substance = Substance NET.NonEmptyText
newtype Dose = Dose NET.NonEmptyText