ttask-0.0.0.2: src/Data/TTask/Types/Types.hs
module Data.TTask.Types.Types
( Point(..)
, Id(..)
, StatusLogRec
, WorkTime(..)
, TStatusRecord(..)
, TStatus(..)
, Task(..)
, UserStory(..)
, Sprint(..)
, Project(..)
, TTaskContents(..)
) where
import Data.Time
type Point = Int
type Id = Int
type StatusLogRec = (TTaskContents, TStatusRecord)
newtype WorkTime = WorkTime Double deriving (Show, Read, Eq)
data TStatusRecord
= StatusWait LocalTime
| StatusRunning LocalTime
| StatusFinished LocalTime
| StatusNotAchieved LocalTime
| StatusReject LocalTime
deriving (Show, Read, Eq)
data TStatus
= TStatusCons TStatusRecord TStatus
| TStatusOne TStatusRecord
deriving (Show, Read, Eq)
data Task = Task
{ taskId :: Id
, taskDescription :: String
, taskPoint :: Int
, taskStatus :: TStatus
, taskWorkTimes :: [WorkTime]
} deriving (Show, Read, Eq)
data UserStory = UserStory
{ storyId :: Id
, storyDescription :: String
, storyTasks :: [Task]
, storyStatus :: TStatus
} deriving (Show, Read, Eq)
data Sprint = Sprint
{ sprintId :: Id
, sprintDescription :: String
, sprintStorys :: [UserStory]
, sprintStatus :: TStatus
} deriving (Show, Read, Eq)
data Project = Project
{ projectName :: String
, projectBacklog :: [UserStory]
, projectSprints :: [Sprint]
, projectStatus :: TStatus
} deriving (Show, Read, Eq)
data TTaskContents
= TTaskProject Project
| TTaskSprint Sprint
| TTaskStory UserStory
| TTaskTask Task