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 }