106 lines
3.8 KiB
SQL
106 lines
3.8 KiB
SQL
-- name: CreateKolPrompt :one
|
|
INSERT INTO kol_prompts (tenant_id, package_id, name, platform_hint, sort_order, created_by, updated_by)
|
|
VALUES (sqlc.arg(tenant_id)::bigint, sqlc.arg(package_id), sqlc.arg(name),
|
|
sqlc.arg(platform_hint), sqlc.arg(sort_order),
|
|
sqlc.arg(created_by), sqlc.arg(created_by))
|
|
RETURNING id, tenant_id, package_id, name, platform_hint, status, sort_order,
|
|
published_revision_no, draft_revision_no, created_by, updated_by,
|
|
created_at, updated_at;
|
|
|
|
-- name: GetKolPromptByID :one
|
|
SELECT id, tenant_id, package_id, name, platform_hint, status, sort_order,
|
|
published_revision_no, draft_revision_no, created_by, updated_by,
|
|
created_at, updated_at
|
|
FROM kol_prompts
|
|
WHERE id = sqlc.arg(id)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint
|
|
AND deleted_at IS NULL;
|
|
|
|
-- name: ListKolPromptsByPackage :many
|
|
SELECT id, tenant_id, package_id, name, platform_hint, status, sort_order,
|
|
published_revision_no, draft_revision_no, created_by, updated_by,
|
|
created_at, updated_at
|
|
FROM kol_prompts
|
|
WHERE package_id = sqlc.arg(package_id)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint
|
|
AND deleted_at IS NULL
|
|
ORDER BY sort_order ASC, created_at ASC;
|
|
|
|
-- name: ListActiveKolPromptsByPackage :many
|
|
SELECT id, tenant_id, package_id, published_revision_no
|
|
FROM kol_prompts
|
|
WHERE package_id = sqlc.arg(package_id)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint
|
|
AND status = 'active'
|
|
AND published_revision_no IS NOT NULL
|
|
AND deleted_at IS NULL
|
|
ORDER BY sort_order ASC;
|
|
|
|
-- name: UpdateKolPromptMetadata :exec
|
|
UPDATE kol_prompts
|
|
SET name = sqlc.arg(name),
|
|
platform_hint = sqlc.arg(platform_hint),
|
|
sort_order = sqlc.arg(sort_order),
|
|
updated_by = sqlc.arg(updated_by),
|
|
updated_at = NOW()
|
|
WHERE id = sqlc.arg(id)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint
|
|
AND deleted_at IS NULL;
|
|
|
|
-- name: UpdateKolPromptPublishedRevision :exec
|
|
UPDATE kol_prompts
|
|
SET published_revision_no = sqlc.arg(revision_no),
|
|
status = 'active',
|
|
updated_by = sqlc.arg(updated_by),
|
|
updated_at = NOW()
|
|
WHERE id = sqlc.arg(id)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint
|
|
AND deleted_at IS NULL;
|
|
|
|
-- name: UpdateKolPromptDraftRevision :exec
|
|
UPDATE kol_prompts
|
|
SET draft_revision_no = sqlc.arg(revision_no),
|
|
updated_by = sqlc.arg(updated_by),
|
|
updated_at = NOW()
|
|
WHERE id = sqlc.arg(id)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint
|
|
AND deleted_at IS NULL;
|
|
|
|
-- name: UpdateKolPromptStatus :exec
|
|
UPDATE kol_prompts
|
|
SET status = sqlc.arg(status),
|
|
updated_by = sqlc.arg(updated_by),
|
|
updated_at = NOW()
|
|
WHERE id = sqlc.arg(id)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint
|
|
AND deleted_at IS NULL;
|
|
|
|
-- name: SoftDeleteKolPrompt :exec
|
|
UPDATE kol_prompts SET deleted_at = NOW()
|
|
WHERE id = sqlc.arg(id)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint
|
|
AND deleted_at IS NULL;
|
|
|
|
-- name: CreateKolPromptRevision :one
|
|
INSERT INTO kol_prompt_revisions (tenant_id, prompt_id, revision_no, prompt_asset_key,
|
|
schema_json, card_config_json, created_by)
|
|
VALUES (sqlc.arg(tenant_id)::bigint, sqlc.arg(prompt_id), sqlc.arg(revision_no),
|
|
sqlc.arg(prompt_asset_key), sqlc.arg(schema_json)::jsonb,
|
|
sqlc.arg(card_config_json)::jsonb, sqlc.arg(created_by))
|
|
RETURNING id, prompt_id, revision_no, prompt_asset_key, schema_json,
|
|
card_config_json, created_by, created_at;
|
|
|
|
-- name: GetKolPromptRevision :one
|
|
SELECT id, prompt_id, revision_no, prompt_asset_key, schema_json,
|
|
card_config_json, created_by, created_at
|
|
FROM kol_prompt_revisions
|
|
WHERE prompt_id = sqlc.arg(prompt_id)
|
|
AND revision_no = sqlc.arg(revision_no)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint;
|
|
|
|
-- name: NextKolPromptRevisionNo :one
|
|
SELECT COALESCE(MAX(revision_no), 0) + 1 AS next_revision_no
|
|
FROM kol_prompt_revisions
|
|
WHERE prompt_id = sqlc.arg(prompt_id)
|
|
AND tenant_id = sqlc.arg(tenant_id)::bigint;
|