nomadcode/services/core/internal/db/tasks.sql.go
toki 9066022825 chore: sync core service scheduler, workflow, storage, and SQL queries
- Update tasks.sql.go with new query mappings
- Add scheduler job definitions and tests
- Extend storage store with new methods
- Update workflow lifecycle and service tests
- Add task query definitions for authoring
2026-06-21 22:23:15 +09:00

334 lines
8.1 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.31.1
// source: tasks.sql
package db
import (
"context"
"encoding/json"
)
const completeTask = `-- name: CompleteTask :one
UPDATE tasks
SET status = 'completed', result = $2, error = NULL, updated_at = now()
WHERE id::text = $1
RETURNING id, title, source, status, payload, result, error, created_at, updated_at, external_provider, external_id, external_url, external_metadata, metadata
`
type CompleteTaskParams struct {
ID string `json:"id"`
Result json.RawMessage `json:"result"`
}
func (q *Queries) CompleteTask(ctx context.Context, arg CompleteTaskParams) (Task, error) {
row := q.db.QueryRow(ctx, completeTask, arg.ID, arg.Result)
var i Task
err := row.Scan(
&i.ID,
&i.Title,
&i.Source,
&i.Status,
&i.Payload,
&i.Result,
&i.Error,
&i.CreatedAt,
&i.UpdatedAt,
&i.ExternalProvider,
&i.ExternalID,
&i.ExternalUrl,
&i.ExternalMetadata,
&i.Metadata,
)
return i, err
}
const createTask = `-- name: CreateTask :one
INSERT INTO tasks (title, source, payload, metadata, external_provider, external_id, external_url, external_metadata)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
ON CONFLICT (external_provider, external_id) WHERE external_provider IS NOT NULL AND external_id IS NOT NULL
DO UPDATE SET updated_at = tasks.updated_at
RETURNING id, title, source, status, payload, result, error, created_at, updated_at, external_provider, external_id, external_url, external_metadata, metadata
`
type CreateTaskParams struct {
Title string `json:"title"`
Source string `json:"source"`
Payload json.RawMessage `json:"payload"`
Metadata json.RawMessage `json:"metadata"`
ExternalProvider *string `json:"external_provider"`
ExternalID *string `json:"external_id"`
ExternalUrl *string `json:"external_url"`
ExternalMetadata json.RawMessage `json:"external_metadata"`
}
func (q *Queries) CreateTask(ctx context.Context, arg CreateTaskParams) (Task, error) {
row := q.db.QueryRow(ctx, createTask,
arg.Title,
arg.Source,
arg.Payload,
arg.Metadata,
arg.ExternalProvider,
arg.ExternalID,
arg.ExternalUrl,
arg.ExternalMetadata,
)
var i Task
err := row.Scan(
&i.ID,
&i.Title,
&i.Source,
&i.Status,
&i.Payload,
&i.Result,
&i.Error,
&i.CreatedAt,
&i.UpdatedAt,
&i.ExternalProvider,
&i.ExternalID,
&i.ExternalUrl,
&i.ExternalMetadata,
&i.Metadata,
)
return i, err
}
const failTask = `-- name: FailTask :one
UPDATE tasks
SET status = 'failed', error = $2, updated_at = now()
WHERE id::text = $1
RETURNING id, title, source, status, payload, result, error, created_at, updated_at, external_provider, external_id, external_url, external_metadata, metadata
`
type FailTaskParams struct {
ID string `json:"id"`
Error *string `json:"error"`
}
func (q *Queries) FailTask(ctx context.Context, arg FailTaskParams) (Task, error) {
row := q.db.QueryRow(ctx, failTask, arg.ID, arg.Error)
var i Task
err := row.Scan(
&i.ID,
&i.Title,
&i.Source,
&i.Status,
&i.Payload,
&i.Result,
&i.Error,
&i.CreatedAt,
&i.UpdatedAt,
&i.ExternalProvider,
&i.ExternalID,
&i.ExternalUrl,
&i.ExternalMetadata,
&i.Metadata,
)
return i, err
}
const getTask = `-- name: GetTask :one
SELECT id, title, source, status, payload, result, error, created_at, updated_at, external_provider, external_id, external_url, external_metadata, metadata
FROM tasks
WHERE id::text = $1
`
func (q *Queries) GetTask(ctx context.Context, id string) (Task, error) {
row := q.db.QueryRow(ctx, getTask, id)
var i Task
err := row.Scan(
&i.ID,
&i.Title,
&i.Source,
&i.Status,
&i.Payload,
&i.Result,
&i.Error,
&i.CreatedAt,
&i.UpdatedAt,
&i.ExternalProvider,
&i.ExternalID,
&i.ExternalUrl,
&i.ExternalMetadata,
&i.Metadata,
)
return i, err
}
const getTaskByExternalRef = `-- name: GetTaskByExternalRef :one
SELECT id, title, source, status, payload, result, error, created_at, updated_at, external_provider, external_id, external_url, external_metadata, metadata
FROM tasks
WHERE external_provider = $1 AND external_id = $2
`
type GetTaskByExternalRefParams struct {
ExternalProvider *string `json:"external_provider"`
ExternalID *string `json:"external_id"`
}
func (q *Queries) GetTaskByExternalRef(ctx context.Context, arg GetTaskByExternalRefParams) (Task, error) {
row := q.db.QueryRow(ctx, getTaskByExternalRef, arg.ExternalProvider, arg.ExternalID)
var i Task
err := row.Scan(
&i.ID,
&i.Title,
&i.Source,
&i.Status,
&i.Payload,
&i.Result,
&i.Error,
&i.CreatedAt,
&i.UpdatedAt,
&i.ExternalProvider,
&i.ExternalID,
&i.ExternalUrl,
&i.ExternalMetadata,
&i.Metadata,
)
return i, err
}
const listTasks = `-- name: ListTasks :many
SELECT id, title, source, status, payload, result, error, created_at, updated_at, external_provider, external_id, external_url, external_metadata, metadata
FROM tasks
ORDER BY created_at DESC
LIMIT $1
`
func (q *Queries) ListTasks(ctx context.Context, limit int32) ([]Task, error) {
rows, err := q.db.Query(ctx, listTasks, limit)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Task
for rows.Next() {
var i Task
if err := rows.Scan(
&i.ID,
&i.Title,
&i.Source,
&i.Status,
&i.Payload,
&i.Result,
&i.Error,
&i.CreatedAt,
&i.UpdatedAt,
&i.ExternalProvider,
&i.ExternalID,
&i.ExternalUrl,
&i.ExternalMetadata,
&i.Metadata,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const updateTaskMetadata = `-- name: UpdateTaskMetadata :one
UPDATE tasks
SET metadata = $2, updated_at = now()
WHERE id::text = $1
RETURNING id, title, source, status, payload, result, error, created_at, updated_at, external_provider, external_id, external_url, external_metadata, metadata
`
type UpdateTaskMetadataParams struct {
ID string `json:"id"`
Metadata json.RawMessage `json:"metadata"`
}
func (q *Queries) UpdateTaskMetadata(ctx context.Context, arg UpdateTaskMetadataParams) (Task, error) {
row := q.db.QueryRow(ctx, updateTaskMetadata, arg.ID, arg.Metadata)
var i Task
err := row.Scan(
&i.ID,
&i.Title,
&i.Source,
&i.Status,
&i.Payload,
&i.Result,
&i.Error,
&i.CreatedAt,
&i.UpdatedAt,
&i.ExternalProvider,
&i.ExternalID,
&i.ExternalUrl,
&i.ExternalMetadata,
&i.Metadata,
)
return i, err
}
const updateTaskMetadataIfNonTerminal = `-- name: UpdateTaskMetadataIfNonTerminal :one
UPDATE tasks
SET metadata = $2, updated_at = now()
WHERE id::text = $1 AND status NOT IN ('completed', 'failed', 'canceled')
RETURNING id, title, source, status, payload, result, error, created_at, updated_at, external_provider, external_id, external_url, external_metadata, metadata
`
type UpdateTaskMetadataIfNonTerminalParams struct {
ID string `json:"id"`
Metadata json.RawMessage `json:"metadata"`
}
func (q *Queries) UpdateTaskMetadataIfNonTerminal(ctx context.Context, arg UpdateTaskMetadataIfNonTerminalParams) (Task, error) {
row := q.db.QueryRow(ctx, updateTaskMetadataIfNonTerminal, arg.ID, arg.Metadata)
var i Task
err := row.Scan(
&i.ID,
&i.Title,
&i.Source,
&i.Status,
&i.Payload,
&i.Result,
&i.Error,
&i.CreatedAt,
&i.UpdatedAt,
&i.ExternalProvider,
&i.ExternalID,
&i.ExternalUrl,
&i.ExternalMetadata,
&i.Metadata,
)
return i, err
}
const updateTaskStatus = `-- name: UpdateTaskStatus :one
UPDATE tasks
SET status = $2, updated_at = now()
WHERE id::text = $1
RETURNING id, title, source, status, payload, result, error, created_at, updated_at, external_provider, external_id, external_url, external_metadata, metadata
`
type UpdateTaskStatusParams struct {
ID string `json:"id"`
Status string `json:"status"`
}
func (q *Queries) UpdateTaskStatus(ctx context.Context, arg UpdateTaskStatusParams) (Task, error) {
row := q.db.QueryRow(ctx, updateTaskStatus, arg.ID, arg.Status)
var i Task
err := row.Scan(
&i.ID,
&i.Title,
&i.Source,
&i.Status,
&i.Payload,
&i.Result,
&i.Error,
&i.CreatedAt,
&i.UpdatedAt,
&i.ExternalProvider,
&i.ExternalID,
&i.ExternalUrl,
&i.ExternalMetadata,
&i.Metadata,
)
return i, err
}