// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.28.0
// source: projects.sql
package database
import (
"context"
"database/sql"
)
const createProject = `-- name: CreateProject :one
INSERT INTO projects (name, description, status)
VALUES (?, ?, ?)
RETURNING id, name, description, status, created_at, updated_at
`
type CreateProjectParams struct {
Name string
Description sql.NullString
Status string
}
func (q *Queries) CreateProject(ctx context.Context, arg CreateProjectParams) (Project, error) {
row := q.db.QueryRowContext(ctx, createProject, arg.Name, arg.Description, arg.Status)
var i Project
err := row.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.Status,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const deleteProject = `-- name: DeleteProject :exec
DELETE FROM projects WHERE id = ?
`
func (q *Queries) DeleteProject(ctx context.Context, id int64) error {
_, err := q.db.ExecContext(ctx, deleteProject, id)
return err
}
const getProject = `-- name: GetProject :one
SELECT id, name, description, status, created_at, updated_at FROM projects WHERE id = ?
`
func (q *Queries) GetProject(ctx context.Context, id int64) (Project, error) {
row := q.db.QueryRowContext(ctx, getProject, id)
var i Project
err := row.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.Status,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const listProjects = `-- name: ListProjects :many
SELECT id, name, description, status, created_at, updated_at FROM projects
`
func (q *Queries) ListProjects(ctx context.Context) ([]Project, error) {
rows, err := q.db.QueryContext(ctx, listProjects)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Project
for rows.Next() {
var i Project
if err := rows.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.Status,
&i.CreatedAt,
&i.UpdatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const updateProject = `-- name: UpdateProject :one
UPDATE projects
SET
name = IIF(CAST(? AS BOOLEAN), CAST(? AS TEXT), name),
description = IIF(CAST(? AS BOOLEAN), CAST(?5 AS TEXT), description),
status = IIF(CAST(? AS BOOLEAN), CAST(? AS TEXT), status)
WHERE id = ?
RETURNING id, name, description, status, created_at, updated_at
`
type UpdateProjectParams struct {
SetName bool
Name string
SetDescription bool
Description sql.NullString
SetStatus bool
Status string
ID int64
}
func (q *Queries) UpdateProject(ctx context.Context, arg UpdateProjectParams) (Project, error) {
row := q.db.QueryRowContext(ctx, updateProject,
arg.SetName,
arg.Name,
arg.SetDescription,
arg.Description,
arg.SetStatus,
arg.Status,
arg.ID,
)
var i Project
err := row.Scan(
&i.ID,
&i.Name,
&i.Description,
&i.Status,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}