summaryrefslogtreecommitdiff
path: root/Omni/Task/Core.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Omni/Task/Core.hs')
-rw-r--r--Omni/Task/Core.hs14
1 files changed, 10 insertions, 4 deletions
diff --git a/Omni/Task/Core.hs b/Omni/Task/Core.hs
index 07c74fc..92936bb 100644
--- a/Omni/Task/Core.hs
+++ b/Omni/Task/Core.hs
@@ -35,6 +35,7 @@ data Task = Task
taskNamespace :: Maybe Text, -- Optional namespace (e.g., "Omni/Task", "Biz/Cloud")
taskStatus :: Status,
taskPriority :: Priority, -- Priority level (0-4)
+ taskComplexity :: Maybe Int, -- Complexity 1-5 for model selection
taskDependencies :: [Dependency], -- List of dependencies with types
taskDescription :: Text, -- Required description
taskComments :: [Comment], -- Timestamped comments for extra context
@@ -292,6 +293,7 @@ instance SQL.FromRow Task where
<*> SQL.field
<*> SQL.field
<*> SQL.field
+ <*> SQL.field -- complexity
<*> SQL.field
<*> (fromMaybe "" </ SQL.field) -- Handle NULL description from legacy data
<*> SQL.field -- comments
@@ -307,6 +309,7 @@ instance SQL.ToRow Task where
SQL.toField (taskNamespace t),
SQL.toField (taskStatus t),
SQL.toField (taskPriority t),
+ SQL.toField (taskComplexity t),
SQL.toField (taskDependencies t),
SQL.toField (taskDescription t),
SQL.toField (taskComments t),
@@ -444,6 +447,7 @@ initTaskDb = do
\ namespace TEXT, \
\ status TEXT NOT NULL, \
\ priority TEXT NOT NULL, \
+ \ complexity INTEGER, \
\ dependencies TEXT NOT NULL, \
\ description TEXT, \
\ comments TEXT NOT NULL DEFAULT '[]', \
@@ -531,6 +535,7 @@ tasksColumns =
("namespace", "TEXT"),
("status", "TEXT"),
("priority", "TEXT"),
+ ("complexity", "INTEGER"),
("dependencies", "TEXT"),
("description", "TEXT"),
("comments", "TEXT"),
@@ -639,13 +644,13 @@ saveTask task =
SQL.execute
conn
"INSERT OR REPLACE INTO tasks \
- \ (id, title, type, parent, namespace, status, priority, dependencies, description, comments, created_at, updated_at) \
- \ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
+ \ (id, title, type, parent, namespace, status, priority, complexity, dependencies, description, comments, created_at, updated_at) \
+ \ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
task
-- Create a new task
-createTask :: Text -> TaskType -> Maybe Text -> Maybe Text -> Priority -> [Dependency] -> Text -> IO Task
-createTask title taskType parent namespace priority deps description =
+createTask :: Text -> TaskType -> Maybe Text -> Maybe Text -> Priority -> Maybe Int -> [Dependency] -> Text -> IO Task
+createTask title taskType parent namespace priority complexity deps description =
withTaskLock <| do
let parent' = fmap normalizeId parent
deps' = map normalizeDependency deps
@@ -665,6 +670,7 @@ createTask title taskType parent namespace priority deps description =
taskNamespace = namespace,
taskStatus = Open,
taskPriority = priority,
+ taskComplexity = complexity,
taskDependencies = deps',
taskDescription = description,
taskComments = [],