// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: chat.sql package db import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const archiveChatSession = `-- name: ArchiveChatSession :exec UPDATE chat_session SET status = 'archived', updated_at = now() WHERE id = $1 ` func (q *Queries) ArchiveChatSession(ctx context.Context, id pgtype.UUID) error { _, err := q.db.Exec(ctx, archiveChatSession, id) return err } const createChatMessage = `-- name: CreateChatMessage :one INSERT INTO chat_message (chat_session_id, role, content, task_id) VALUES ($1, $2, $3, $4) RETURNING id, chat_session_id, role, content, task_id, created_at ` type CreateChatMessageParams struct { ChatSessionID pgtype.UUID `json:"chat_session_id"` Role string `json:"role"` Content string `json:"content"` TaskID pgtype.UUID `json:"task_id"` } func (q *Queries) CreateChatMessage(ctx context.Context, arg CreateChatMessageParams) (ChatMessage, error) { row := q.db.QueryRow(ctx, createChatMessage, arg.ChatSessionID, arg.Role, arg.Content, arg.TaskID, ) var i ChatMessage err := row.Scan( &i.ID, &i.ChatSessionID, &i.Role, &i.Content, &i.TaskID, &i.CreatedAt, ) return i, err } const createChatSession = `-- name: CreateChatSession :one INSERT INTO chat_session (workspace_id, agent_id, creator_id, title) VALUES ($1, $2, $3, $4) RETURNING id, workspace_id, agent_id, creator_id, title, session_id, work_dir, status, created_at, updated_at ` type CreateChatSessionParams struct { WorkspaceID pgtype.UUID `json:"workspace_id"` AgentID pgtype.UUID `json:"agent_id"` CreatorID pgtype.UUID `json:"creator_id"` Title string `json:"title"` } func (q *Queries) CreateChatSession(ctx context.Context, arg CreateChatSessionParams) (ChatSession, error) { row := q.db.QueryRow(ctx, createChatSession, arg.WorkspaceID, arg.AgentID, arg.CreatorID, arg.Title, ) var i ChatSession err := row.Scan( &i.ID, &i.WorkspaceID, &i.AgentID, &i.CreatorID, &i.Title, &i.SessionID, &i.WorkDir, &i.Status, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const createChatTask = `-- name: CreateChatTask :one INSERT INTO agent_task_queue (agent_id, runtime_id, issue_id, status, priority, chat_session_id) VALUES ($1, $2, NULL, 'queued', $3, $4) RETURNING id, agent_id, issue_id, status, priority, dispatched_at, started_at, completed_at, result, error, created_at, context, runtime_id, session_id, work_dir, trigger_comment_id, chat_session_id ` type CreateChatTaskParams struct { AgentID pgtype.UUID `json:"agent_id"` RuntimeID pgtype.UUID `json:"runtime_id"` Priority int32 `json:"priority"` ChatSessionID pgtype.UUID `json:"chat_session_id"` } func (q *Queries) CreateChatTask(ctx context.Context, arg CreateChatTaskParams) (AgentTaskQueue, error) { row := q.db.QueryRow(ctx, createChatTask, arg.AgentID, arg.RuntimeID, arg.Priority, arg.ChatSessionID, ) var i AgentTaskQueue err := row.Scan( &i.ID, &i.AgentID, &i.IssueID, &i.Status, &i.Priority, &i.DispatchedAt, &i.StartedAt, &i.CompletedAt, &i.Result, &i.Error, &i.CreatedAt, &i.Context, &i.RuntimeID, &i.SessionID, &i.WorkDir, &i.TriggerCommentID, &i.ChatSessionID, ) return i, err } const getChatMessage = `-- name: GetChatMessage :one SELECT id, chat_session_id, role, content, task_id, created_at FROM chat_message WHERE id = $1 ` func (q *Queries) GetChatMessage(ctx context.Context, id pgtype.UUID) (ChatMessage, error) { row := q.db.QueryRow(ctx, getChatMessage, id) var i ChatMessage err := row.Scan( &i.ID, &i.ChatSessionID, &i.Role, &i.Content, &i.TaskID, &i.CreatedAt, ) return i, err } const getChatSession = `-- name: GetChatSession :one SELECT id, workspace_id, agent_id, creator_id, title, session_id, work_dir, status, created_at, updated_at FROM chat_session WHERE id = $1 ` func (q *Queries) GetChatSession(ctx context.Context, id pgtype.UUID) (ChatSession, error) { row := q.db.QueryRow(ctx, getChatSession, id) var i ChatSession err := row.Scan( &i.ID, &i.WorkspaceID, &i.AgentID, &i.CreatorID, &i.Title, &i.SessionID, &i.WorkDir, &i.Status, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const getChatSessionInWorkspace = `-- name: GetChatSessionInWorkspace :one SELECT id, workspace_id, agent_id, creator_id, title, session_id, work_dir, status, created_at, updated_at FROM chat_session WHERE id = $1 AND workspace_id = $2 ` type GetChatSessionInWorkspaceParams struct { ID pgtype.UUID `json:"id"` WorkspaceID pgtype.UUID `json:"workspace_id"` } func (q *Queries) GetChatSessionInWorkspace(ctx context.Context, arg GetChatSessionInWorkspaceParams) (ChatSession, error) { row := q.db.QueryRow(ctx, getChatSessionInWorkspace, arg.ID, arg.WorkspaceID) var i ChatSession err := row.Scan( &i.ID, &i.WorkspaceID, &i.AgentID, &i.CreatorID, &i.Title, &i.SessionID, &i.WorkDir, &i.Status, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const getLastChatTaskSession = `-- name: GetLastChatTaskSession :one SELECT session_id, work_dir FROM agent_task_queue WHERE chat_session_id = $1 AND status = 'completed' AND session_id IS NOT NULL ORDER BY completed_at DESC LIMIT 1 ` type GetLastChatTaskSessionRow struct { SessionID pgtype.Text `json:"session_id"` WorkDir pgtype.Text `json:"work_dir"` } func (q *Queries) GetLastChatTaskSession(ctx context.Context, chatSessionID pgtype.UUID) (GetLastChatTaskSessionRow, error) { row := q.db.QueryRow(ctx, getLastChatTaskSession, chatSessionID) var i GetLastChatTaskSessionRow err := row.Scan(&i.SessionID, &i.WorkDir) return i, err } const listAllChatSessionsByCreator = `-- name: ListAllChatSessionsByCreator :many SELECT id, workspace_id, agent_id, creator_id, title, session_id, work_dir, status, created_at, updated_at FROM chat_session WHERE workspace_id = $1 AND creator_id = $2 ORDER BY updated_at DESC ` type ListAllChatSessionsByCreatorParams struct { WorkspaceID pgtype.UUID `json:"workspace_id"` CreatorID pgtype.UUID `json:"creator_id"` } func (q *Queries) ListAllChatSessionsByCreator(ctx context.Context, arg ListAllChatSessionsByCreatorParams) ([]ChatSession, error) { rows, err := q.db.Query(ctx, listAllChatSessionsByCreator, arg.WorkspaceID, arg.CreatorID) if err != nil { return nil, err } defer rows.Close() items := []ChatSession{} for rows.Next() { var i ChatSession if err := rows.Scan( &i.ID, &i.WorkspaceID, &i.AgentID, &i.CreatorID, &i.Title, &i.SessionID, &i.WorkDir, &i.Status, &i.CreatedAt, &i.UpdatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listChatMessages = `-- name: ListChatMessages :many SELECT id, chat_session_id, role, content, task_id, created_at FROM chat_message WHERE chat_session_id = $1 ORDER BY created_at ASC ` func (q *Queries) ListChatMessages(ctx context.Context, chatSessionID pgtype.UUID) ([]ChatMessage, error) { rows, err := q.db.Query(ctx, listChatMessages, chatSessionID) if err != nil { return nil, err } defer rows.Close() items := []ChatMessage{} for rows.Next() { var i ChatMessage if err := rows.Scan( &i.ID, &i.ChatSessionID, &i.Role, &i.Content, &i.TaskID, &i.CreatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listChatSessionsByCreator = `-- name: ListChatSessionsByCreator :many SELECT id, workspace_id, agent_id, creator_id, title, session_id, work_dir, status, created_at, updated_at FROM chat_session WHERE workspace_id = $1 AND creator_id = $2 AND status = 'active' ORDER BY updated_at DESC ` type ListChatSessionsByCreatorParams struct { WorkspaceID pgtype.UUID `json:"workspace_id"` CreatorID pgtype.UUID `json:"creator_id"` } func (q *Queries) ListChatSessionsByCreator(ctx context.Context, arg ListChatSessionsByCreatorParams) ([]ChatSession, error) { rows, err := q.db.Query(ctx, listChatSessionsByCreator, arg.WorkspaceID, arg.CreatorID) if err != nil { return nil, err } defer rows.Close() items := []ChatSession{} for rows.Next() { var i ChatSession if err := rows.Scan( &i.ID, &i.WorkspaceID, &i.AgentID, &i.CreatorID, &i.Title, &i.SessionID, &i.WorkDir, &i.Status, &i.CreatedAt, &i.UpdatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const touchChatSession = `-- name: TouchChatSession :exec UPDATE chat_session SET updated_at = now() WHERE id = $1 ` func (q *Queries) TouchChatSession(ctx context.Context, id pgtype.UUID) error { _, err := q.db.Exec(ctx, touchChatSession, id) return err } const updateChatSessionSession = `-- name: UpdateChatSessionSession :exec UPDATE chat_session SET session_id = $2, work_dir = $3, updated_at = now() WHERE id = $1 ` type UpdateChatSessionSessionParams struct { ID pgtype.UUID `json:"id"` SessionID pgtype.Text `json:"session_id"` WorkDir pgtype.Text `json:"work_dir"` } func (q *Queries) UpdateChatSessionSession(ctx context.Context, arg UpdateChatSessionSessionParams) error { _, err := q.db.Exec(ctx, updateChatSessionSession, arg.ID, arg.SessionID, arg.WorkDir) return err } const updateChatSessionTitle = `-- name: UpdateChatSessionTitle :one UPDATE chat_session SET title = $2, updated_at = now() WHERE id = $1 RETURNING id, workspace_id, agent_id, creator_id, title, session_id, work_dir, status, created_at, updated_at ` type UpdateChatSessionTitleParams struct { ID pgtype.UUID `json:"id"` Title string `json:"title"` } func (q *Queries) UpdateChatSessionTitle(ctx context.Context, arg UpdateChatSessionTitleParams) (ChatSession, error) { row := q.db.QueryRow(ctx, updateChatSessionTitle, arg.ID, arg.Title) var i ChatSession err := row.Scan( &i.ID, &i.WorkspaceID, &i.AgentID, &i.CreatorID, &i.Title, &i.SessionID, &i.WorkDir, &i.Status, &i.CreatedAt, &i.UpdatedAt, ) return i, err }