// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 // source: templates.sql package db import ( "context" "github.com/google/uuid" dto "github.com/vasyakrg/dns-autoresolver/internal/store/dto" ) const createTemplate = `-- name: CreateTemplate :one INSERT INTO templates (id, project_id, name, doc, version) VALUES ($1, $2, $3, $4, 1) RETURNING id, project_id, name, doc, version, created_at, updated_at ` type CreateTemplateParams struct { ID uuid.UUID `json:"id"` ProjectID uuid.UUID `json:"project_id"` Name string `json:"name"` Doc *dto.TemplateDoc `json:"doc"` } func (q *Queries) CreateTemplate(ctx context.Context, arg CreateTemplateParams) (Template, error) { row := q.db.QueryRow(ctx, createTemplate, arg.ID, arg.ProjectID, arg.Name, arg.Doc, ) var i Template err := row.Scan( &i.ID, &i.ProjectID, &i.Name, &i.Doc, &i.Version, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const deleteTemplate = `-- name: DeleteTemplate :exec DELETE FROM templates WHERE id = $1 AND project_id = $2 ` type DeleteTemplateParams struct { ID uuid.UUID `json:"id"` ProjectID uuid.UUID `json:"project_id"` } func (q *Queries) DeleteTemplate(ctx context.Context, arg DeleteTemplateParams) error { _, err := q.db.Exec(ctx, deleteTemplate, arg.ID, arg.ProjectID) return err } const getTemplate = `-- name: GetTemplate :one SELECT id, project_id, name, doc, version, created_at, updated_at FROM templates WHERE id = $1 AND project_id = $2 ` type GetTemplateParams struct { ID uuid.UUID `json:"id"` ProjectID uuid.UUID `json:"project_id"` } func (q *Queries) GetTemplate(ctx context.Context, arg GetTemplateParams) (Template, error) { row := q.db.QueryRow(ctx, getTemplate, arg.ID, arg.ProjectID) var i Template err := row.Scan( &i.ID, &i.ProjectID, &i.Name, &i.Doc, &i.Version, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const listTemplates = `-- name: ListTemplates :many SELECT id, project_id, name, doc, version, created_at, updated_at FROM templates WHERE project_id = $1 ORDER BY created_at ` func (q *Queries) ListTemplates(ctx context.Context, projectID uuid.UUID) ([]Template, error) { rows, err := q.db.Query(ctx, listTemplates, projectID) if err != nil { return nil, err } defer rows.Close() var items []Template for rows.Next() { var i Template if err := rows.Scan( &i.ID, &i.ProjectID, &i.Name, &i.Doc, &i.Version, &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 updateTemplate = `-- name: UpdateTemplate :one UPDATE templates SET name = $3, doc = $4, version = version + 1, updated_at = now() WHERE id = $1 AND project_id = $2 RETURNING id, project_id, name, doc, version, created_at, updated_at ` type UpdateTemplateParams struct { ID uuid.UUID `json:"id"` ProjectID uuid.UUID `json:"project_id"` Name string `json:"name"` Doc *dto.TemplateDoc `json:"doc"` } func (q *Queries) UpdateTemplate(ctx context.Context, arg UpdateTemplateParams) (Template, error) { row := q.db.QueryRow(ctx, updateTemplate, arg.ID, arg.ProjectID, arg.Name, arg.Doc, ) var i Template err := row.Scan( &i.ID, &i.ProjectID, &i.Name, &i.Doc, &i.Version, &i.CreatedAt, &i.UpdatedAt, ) return i, err }