feat(project): add workspace_id to issue/requirement with tri-state update

This commit is contained in:
2026-05-02 14:20:15 +08:00
parent 7429a817bc
commit 0cadec343c
17 changed files with 655 additions and 51 deletions
+9 -8
View File
@@ -1,22 +1,22 @@
-- name: CreateIssue :one
INSERT INTO issues (id, project_id, requirement_id, number, title, description, assignee_id, created_by)
INSERT INTO issues (id, project_id, requirement_id, number, title, description, assignee_id, created_by, workspace_id)
VALUES (
$1, $2, $3,
(SELECT COALESCE(MAX(number), 0) + 1 FROM issues WHERE project_id = $2),
$4, $5, $6, $7
$4, $5, $6, $7, $8
)
RETURNING id, project_id, requirement_id, number, title, description, status,
assignee_id, created_by, closed_at, created_at, updated_at;
assignee_id, created_by, closed_at, created_at, updated_at, workspace_id;
-- name: GetIssueByNumber :one
SELECT id, project_id, requirement_id, number, title, description, status,
assignee_id, created_by, closed_at, created_at, updated_at
assignee_id, created_by, closed_at, created_at, updated_at, workspace_id
FROM issues
WHERE project_id = $1 AND number = $2;
-- name: ListIssues :many
SELECT id, project_id, requirement_id, number, title, description, status,
assignee_id, created_by, closed_at, created_at, updated_at
assignee_id, created_by, closed_at, created_at, updated_at, workspace_id
FROM issues
WHERE project_id = $1
AND (sqlc.narg('status')::text IS NULL OR status = sqlc.narg('status'))
@@ -30,7 +30,7 @@ ORDER BY number DESC;
-- name: ListIssuesByRequirement :many
SELECT id, project_id, requirement_id, number, title, description, status,
assignee_id, created_by, closed_at, created_at, updated_at
assignee_id, created_by, closed_at, created_at, updated_at, workspace_id
FROM issues
WHERE requirement_id = $1
ORDER BY number DESC;
@@ -40,17 +40,18 @@ UPDATE issues
SET title = $2,
description = $3,
requirement_id = $4,
workspace_id = $5,
updated_at = now()
WHERE id = $1
RETURNING id, project_id, requirement_id, number, title, description, status,
assignee_id, created_by, closed_at, created_at, updated_at;
assignee_id, created_by, closed_at, created_at, updated_at, workspace_id;
-- name: UpdateIssueAssignee :one
UPDATE issues
SET assignee_id = $2, updated_at = now()
WHERE id = $1
RETURNING id, project_id, requirement_id, number, title, description, status,
assignee_id, created_by, closed_at, created_at, updated_at;
assignee_id, created_by, closed_at, created_at, updated_at, workspace_id;
-- name: CloseIssue :exec
UPDATE issues SET status = 'closed', closed_at = now(), updated_at = now()
+13 -12
View File
@@ -1,27 +1,27 @@
-- name: CreateRequirement :one
INSERT INTO requirements (id, project_id, number, title, description, owner_id)
INSERT INTO requirements (id, project_id, number, title, description, owner_id, workspace_id)
VALUES (
$1, $2,
(SELECT COALESCE(MAX(number), 0) + 1 FROM requirements WHERE project_id = $2),
$3, $4, $5
$3, $4, $5, $6
)
RETURNING id, project_id, number, title, description, phase, status, owner_id,
closed_at, created_at, updated_at;
closed_at, created_at, updated_at, workspace_id;
-- name: GetRequirementByNumber :one
SELECT id, project_id, number, title, description, phase, status, owner_id,
closed_at, created_at, updated_at
closed_at, created_at, updated_at, workspace_id
FROM requirements
WHERE project_id = $1 AND number = $2;
-- name: GetRequirementByID :one
SELECT id, project_id, number, title, description, phase, status, owner_id,
closed_at, created_at, updated_at
closed_at, created_at, updated_at, workspace_id
FROM requirements WHERE id = $1;
-- name: ListRequirements :many
SELECT id, project_id, number, title, description, phase, status, owner_id,
closed_at, created_at, updated_at
closed_at, created_at, updated_at, workspace_id
FROM requirements
WHERE project_id = $1
AND (sqlc.narg('phase')::text IS NULL OR phase = sqlc.narg('phase'))
@@ -30,20 +30,21 @@ ORDER BY number DESC;
-- name: UpdateRequirement :one
UPDATE requirements
SET title = $2,
description = $3,
owner_id = $4,
updated_at = now()
SET title = $2,
description = $3,
owner_id = $4,
workspace_id = $5,
updated_at = now()
WHERE id = $1
RETURNING id, project_id, number, title, description, phase, status, owner_id,
closed_at, created_at, updated_at;
closed_at, created_at, updated_at, workspace_id;
-- name: UpdateRequirementPhase :one
UPDATE requirements
SET phase = $2, updated_at = now()
WHERE id = $1
RETURNING id, project_id, number, title, description, phase, status, owner_id,
closed_at, created_at, updated_at;
closed_at, created_at, updated_at, workspace_id;
-- name: CloseRequirement :exec
UPDATE requirements