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