// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: workspace.sql package db import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const createWorkspace = `-- name: CreateWorkspace :one INSERT INTO workspace (name, slug, description, context) VALUES ($1, $2, $3, $4) RETURNING id, name, slug, description, settings, created_at, updated_at, context, repos ` type CreateWorkspaceParams struct { Name string `json:"name"` Slug string `json:"slug"` Description pgtype.Text `json:"description"` Context pgtype.Text `json:"context"` } func (q *Queries) CreateWorkspace(ctx context.Context, arg CreateWorkspaceParams) (Workspace, error) { row := q.db.QueryRow(ctx, createWorkspace, arg.Name, arg.Slug, arg.Description, arg.Context, ) var i Workspace err := row.Scan( &i.ID, &i.Name, &i.Slug, &i.Description, &i.Settings, &i.CreatedAt, &i.UpdatedAt, &i.Context, &i.Repos, ) return i, err } const deleteWorkspace = `-- name: DeleteWorkspace :exec DELETE FROM workspace WHERE id = $1 ` func (q *Queries) DeleteWorkspace(ctx context.Context, id pgtype.UUID) error { _, err := q.db.Exec(ctx, deleteWorkspace, id) return err } const getWorkspace = `-- name: GetWorkspace :one SELECT id, name, slug, description, settings, created_at, updated_at, context, repos FROM workspace WHERE id = $1 ` func (q *Queries) GetWorkspace(ctx context.Context, id pgtype.UUID) (Workspace, error) { row := q.db.QueryRow(ctx, getWorkspace, id) var i Workspace err := row.Scan( &i.ID, &i.Name, &i.Slug, &i.Description, &i.Settings, &i.CreatedAt, &i.UpdatedAt, &i.Context, &i.Repos, ) return i, err } const getWorkspaceBySlug = `-- name: GetWorkspaceBySlug :one SELECT id, name, slug, description, settings, created_at, updated_at, context, repos FROM workspace WHERE slug = $1 ` func (q *Queries) GetWorkspaceBySlug(ctx context.Context, slug string) (Workspace, error) { row := q.db.QueryRow(ctx, getWorkspaceBySlug, slug) var i Workspace err := row.Scan( &i.ID, &i.Name, &i.Slug, &i.Description, &i.Settings, &i.CreatedAt, &i.UpdatedAt, &i.Context, &i.Repos, ) return i, err } const listWorkspaces = `-- name: ListWorkspaces :many SELECT w.id, w.name, w.slug, w.description, w.settings, w.created_at, w.updated_at, w.context, w.repos FROM workspace w JOIN member m ON m.workspace_id = w.id WHERE m.user_id = $1 ORDER BY w.created_at ASC ` func (q *Queries) ListWorkspaces(ctx context.Context, userID pgtype.UUID) ([]Workspace, error) { rows, err := q.db.Query(ctx, listWorkspaces, userID) if err != nil { return nil, err } defer rows.Close() items := []Workspace{} for rows.Next() { var i Workspace if err := rows.Scan( &i.ID, &i.Name, &i.Slug, &i.Description, &i.Settings, &i.CreatedAt, &i.UpdatedAt, &i.Context, &i.Repos, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const updateWorkspace = `-- name: UpdateWorkspace :one UPDATE workspace SET name = COALESCE($2, name), description = COALESCE($3, description), context = COALESCE($4, context), settings = COALESCE($5, settings), repos = COALESCE($6, repos), updated_at = now() WHERE id = $1 RETURNING id, name, slug, description, settings, created_at, updated_at, context, repos ` type UpdateWorkspaceParams struct { ID pgtype.UUID `json:"id"` Name pgtype.Text `json:"name"` Description pgtype.Text `json:"description"` Context pgtype.Text `json:"context"` Settings []byte `json:"settings"` Repos []byte `json:"repos"` } func (q *Queries) UpdateWorkspace(ctx context.Context, arg UpdateWorkspaceParams) (Workspace, error) { row := q.db.QueryRow(ctx, updateWorkspace, arg.ID, arg.Name, arg.Description, arg.Context, arg.Settings, arg.Repos, ) var i Workspace err := row.Scan( &i.ID, &i.Name, &i.Slug, &i.Description, &i.Settings, &i.CreatedAt, &i.UpdatedAt, &i.Context, &i.Repos, ) return i, err }