summaryrefslogtreecommitdiff
path: root/makima/src/db/repository.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-16 17:07:44 +0000
committersoryu <soryu@soryu.co>2026-01-16 17:07:44 +0000
commitf84a7f2d820f6f432be2b1d78d6bf833b5b19380 (patch)
tree06398f6a91ec6efe06d2c77e603a27728d72885c /makima/src/db/repository.rs
parentdcec90d2c233671e64e412a9f7b883d8db6783ec (diff)
downloadsoryu-f84a7f2d820f6f432be2b1d78d6bf833b5b19380.tar.gz
soryu-f84a7f2d820f6f432be2b1d78d6bf833b5b19380.zip
Fixup: fix history call and try to start pending tasks when a daemon is available
Diffstat (limited to 'makima/src/db/repository.rs')
-rw-r--r--makima/src/db/repository.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/makima/src/db/repository.rs b/makima/src/db/repository.rs
index cb9d52f..2b069d5 100644
--- a/makima/src/db/repository.rs
+++ b/makima/src/db/repository.rs
@@ -789,6 +789,27 @@ pub async fn list_tasks_by_contract(
.await
}
+/// Get pending tasks for a contract (non-supervisor tasks only).
+pub async fn get_pending_tasks_for_contract(
+ pool: &PgPool,
+ contract_id: Uuid,
+ owner_id: Uuid,
+) -> Result<Vec<Task>, sqlx::Error> {
+ sqlx::query_as::<_, Task>(
+ r#"
+ SELECT * FROM tasks
+ WHERE contract_id = $1 AND owner_id = $2
+ AND status = 'pending'
+ AND is_supervisor = false
+ ORDER BY priority DESC, created_at ASC
+ "#,
+ )
+ .bind(contract_id)
+ .bind(owner_id)
+ .fetch_all(pool)
+ .await
+}
+
/// Update a task by ID with optimistic locking.
pub async fn update_task(
pool: &PgPool,