module Data.TTask.Command.Delete
( deleteTask
, deleteStory
, deleteSprint
) where
import Data.TTask.Types
deleteTask :: Id -> Project -> Project
deleteTask i pj = pj
{ _projectBacklog = map (deleteTaskFromStory i) $ _projectBacklog pj
, _projectSprints = map (deleteTaskFromSprint i) $ _projectSprints pj
}
deleteStory :: Id -> Project -> Project
deleteStory i pj = pj
{ _projectBacklog = filter (\u -> _storyId u /= i) $ _projectBacklog pj
, _projectSprints = map (deleteStoryFromSprint i) $ _projectSprints pj
}
deleteSprint :: Id -> Project -> Project
deleteSprint i pj
= pj { _projectSprints = filter (\s -> _sprintId s /= i) $ _projectSprints pj }
deleteTaskFromStory :: Id -> UserStory -> UserStory
deleteTaskFromStory i s
= s { _storyTasks = filter (\t -> _taskId t /= i) $ _storyTasks s }
deleteTaskFromSprint :: Id -> Sprint -> Sprint
deleteTaskFromSprint i s
= s { _sprintStorys = map (deleteTaskFromStory i) $ _sprintStorys s }
deleteStoryFromSprint :: Id -> Sprint -> Sprint
deleteStoryFromSprint i s
= s { _sprintStorys = filter (\u -> _storyId u /= i) $ _sprintStorys s }