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 }