// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 // source: conversations.sql package chatsqlc import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const getConversation = `-- name: GetConversation :one SELECT id, user_id, project_id, workspace_id, issue_id, model_id, system_prompt, title, title_generated_at, created_at, updated_at, deleted_at, requirement_id FROM conversations WHERE id = $1 AND deleted_at IS NULL ` func (q *Queries) GetConversation(ctx context.Context, id pgtype.UUID) (Conversation, error) { row := q.db.QueryRow(ctx, getConversation, id) var i Conversation err := row.Scan( &i.ID, &i.UserID, &i.ProjectID, &i.WorkspaceID, &i.IssueID, &i.ModelID, &i.SystemPrompt, &i.Title, &i.TitleGeneratedAt, &i.CreatedAt, &i.UpdatedAt, &i.DeletedAt, &i.RequirementID, ) return i, err } const insertConversation = `-- name: InsertConversation :one INSERT INTO conversations (id, user_id, project_id, workspace_id, issue_id, model_id, system_prompt, title, requirement_id) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING id, user_id, project_id, workspace_id, issue_id, model_id, system_prompt, title, title_generated_at, created_at, updated_at, deleted_at, requirement_id ` type InsertConversationParams struct { ID pgtype.UUID `json:"id"` UserID pgtype.UUID `json:"user_id"` ProjectID pgtype.UUID `json:"project_id"` WorkspaceID pgtype.UUID `json:"workspace_id"` IssueID pgtype.UUID `json:"issue_id"` ModelID pgtype.UUID `json:"model_id"` SystemPrompt string `json:"system_prompt"` Title *string `json:"title"` RequirementID pgtype.UUID `json:"requirement_id"` } func (q *Queries) InsertConversation(ctx context.Context, arg InsertConversationParams) (Conversation, error) { row := q.db.QueryRow(ctx, insertConversation, arg.ID, arg.UserID, arg.ProjectID, arg.WorkspaceID, arg.IssueID, arg.ModelID, arg.SystemPrompt, arg.Title, arg.RequirementID, ) var i Conversation err := row.Scan( &i.ID, &i.UserID, &i.ProjectID, &i.WorkspaceID, &i.IssueID, &i.ModelID, &i.SystemPrompt, &i.Title, &i.TitleGeneratedAt, &i.CreatedAt, &i.UpdatedAt, &i.DeletedAt, &i.RequirementID, ) return i, err } const listConversationsByUser = `-- name: ListConversationsByUser :many SELECT id, user_id, project_id, workspace_id, issue_id, model_id, system_prompt, title, title_generated_at, created_at, updated_at, deleted_at, requirement_id FROM conversations WHERE user_id = $1 AND deleted_at IS NULL AND ($2::uuid IS NULL OR project_id = $2) AND ($3::uuid IS NULL OR workspace_id = $3) AND ($4::uuid IS NULL OR issue_id = $4) AND ($5::uuid IS NULL OR requirement_id = $5) AND ($6::text = '' OR title ILIKE '%' || $6 || '%') ORDER BY updated_at DESC LIMIT $7 ` type ListConversationsByUserParams struct { UserID pgtype.UUID `json:"user_id"` Column2 pgtype.UUID `json:"column_2"` Column3 pgtype.UUID `json:"column_3"` Column4 pgtype.UUID `json:"column_4"` Column5 pgtype.UUID `json:"column_5"` Column6 string `json:"column_6"` Limit int32 `json:"limit"` } func (q *Queries) ListConversationsByUser(ctx context.Context, arg ListConversationsByUserParams) ([]Conversation, error) { rows, err := q.db.Query(ctx, listConversationsByUser, arg.UserID, arg.Column2, arg.Column3, arg.Column4, arg.Column5, arg.Column6, arg.Limit, ) if err != nil { return nil, err } defer rows.Close() var items []Conversation for rows.Next() { var i Conversation if err := rows.Scan( &i.ID, &i.UserID, &i.ProjectID, &i.WorkspaceID, &i.IssueID, &i.ModelID, &i.SystemPrompt, &i.Title, &i.TitleGeneratedAt, &i.CreatedAt, &i.UpdatedAt, &i.DeletedAt, &i.RequirementID, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const setConversationTitleManual = `-- name: SetConversationTitleManual :exec UPDATE conversations SET title = $2, updated_at = NOW() WHERE id = $1 ` type SetConversationTitleManualParams struct { ID pgtype.UUID `json:"id"` Title *string `json:"title"` } func (q *Queries) SetConversationTitleManual(ctx context.Context, arg SetConversationTitleManualParams) error { _, err := q.db.Exec(ctx, setConversationTitleManual, arg.ID, arg.Title) return err } const softDeleteConversation = `-- name: SoftDeleteConversation :exec UPDATE conversations SET deleted_at = NOW(), updated_at = NOW() WHERE id = $1 AND deleted_at IS NULL ` func (q *Queries) SoftDeleteConversation(ctx context.Context, id pgtype.UUID) error { _, err := q.db.Exec(ctx, softDeleteConversation, id) return err } const updateConversationTitle = `-- name: UpdateConversationTitle :exec UPDATE conversations SET title = $2, title_generated_at = NOW(), updated_at = NOW() WHERE id = $1 ` type UpdateConversationTitleParams struct { ID pgtype.UUID `json:"id"` Title *string `json:"title"` } func (q *Queries) UpdateConversationTitle(ctx context.Context, arg UpdateConversationTitleParams) error { _, err := q.db.Exec(ctx, updateConversationTitle, arg.ID, arg.Title) return err }