sakila/internal/sqlc/actor.sql.go

220 lines
4.9 KiB
Go
Raw Normal View History

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.29.0
// source: actor.sql
package sqlc
import (
"context"
"database/sql"
)
const countActors = `-- name: CountActors :one
SELECT COUNT(*)
FROM actor
`
func (q *Queries) CountActors(ctx context.Context) (int64, error) {
row := q.db.QueryRowContext(ctx, countActors)
var count int64
err := row.Scan(&count)
return count, err
}
const deleteActor = `-- name: DeleteActor :execrows
DELETE FROM actor WHERE actor_id = ?
`
func (q *Queries) DeleteActor(ctx context.Context, actorID int64) (int64, error) {
result, err := q.db.ExecContext(ctx, deleteActor, actorID)
if err != nil {
return 0, err
}
return result.RowsAffected()
}
const getActor = `-- name: GetActor :one
SELECT actor_id, first_name, last_name, last_update
FROM actor
WHERE actor_id = ?
`
func (q *Queries) GetActor(ctx context.Context, actorID int64) (Actor, error) {
row := q.db.QueryRowContext(ctx, getActor, actorID)
var i Actor
err := row.Scan(
&i.ActorID,
&i.FirstName,
&i.LastName,
&i.LastUpdate,
)
return i, err
}
const insertActor = `-- name: InsertActor :exec
INSERT INTO actor (actor_id, first_name, last_name, last_update)
VALUES (?, ?, ?, CURRENT_TIMESTAMP)
`
type InsertActorParams struct {
ActorID int64 `json:"actor_id"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
}
func (q *Queries) InsertActor(ctx context.Context, arg InsertActorParams) error {
_, err := q.db.ExecContext(ctx, insertActor, arg.ActorID, arg.FirstName, arg.LastName)
return err
}
const listActors = `-- name: ListActors :many
SELECT actor_id, first_name, last_name, last_update
FROM actor
ORDER BY actor_id ASC
LIMIT ? OFFSET ?
`
type ListActorsParams struct {
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
func (q *Queries) ListActors(ctx context.Context, arg ListActorsParams) ([]Actor, error) {
rows, err := q.db.QueryContext(ctx, listActors, arg.Limit, arg.Offset)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Actor
for rows.Next() {
var i Actor
if err := rows.Scan(
&i.ActorID,
&i.FirstName,
&i.LastName,
&i.LastUpdate,
); 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 listFilmsByActor = `-- name: ListFilmsByActor :many
SELECT f.film_id,
f.title,
f.description,
f.release_year,
f.language_id,
f.original_language_id,
f.rental_duration,
f.rental_rate,
f.length,
f.replacement_cost,
f.rating,
f.special_features,
f.last_update
FROM film f
JOIN film_actor fa ON fa.film_id = f.film_id
WHERE fa.actor_id = ?
ORDER BY f.title ASC
`
func (q *Queries) ListFilmsByActor(ctx context.Context, actorID int64) ([]Film, error) {
rows, err := q.db.QueryContext(ctx, listFilmsByActor, actorID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Film
for rows.Next() {
var i Film
if err := rows.Scan(
&i.FilmID,
&i.Title,
&i.Description,
&i.ReleaseYear,
&i.LanguageID,
&i.OriginalLanguageID,
&i.RentalDuration,
&i.RentalRate,
&i.Length,
&i.ReplacementCost,
&i.Rating,
&i.SpecialFeatures,
&i.LastUpdate,
); 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 nextActorID = `-- name: NextActorID :one
SELECT COALESCE(MAX(actor_id), 0) + 1 FROM actor
`
func (q *Queries) NextActorID(ctx context.Context) (int64, error) {
row := q.db.QueryRowContext(ctx, nextActorID)
var column_1 int64
err := row.Scan(&column_1)
return column_1, err
}
const patchActor = `-- name: PatchActor :execrows
UPDATE actor
SET first_name = COALESCE(?1, first_name),
last_name = COALESCE(?2, last_name)
WHERE actor_id = ?3
`
type PatchActorParams struct {
FirstName sql.NullString `json:"first_name"`
LastName sql.NullString `json:"last_name"`
ActorID int64 `json:"actor_id"`
}
func (q *Queries) PatchActor(ctx context.Context, arg PatchActorParams) (int64, error) {
result, err := q.db.ExecContext(ctx, patchActor, arg.FirstName, arg.LastName, arg.ActorID)
if err != nil {
return 0, err
}
return result.RowsAffected()
}
const updateActorPut = `-- name: UpdateActorPut :execrows
UPDATE actor
SET first_name = ?,
last_name = ?
WHERE actor_id = ?
`
type UpdateActorPutParams struct {
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
ActorID int64 `json:"actor_id"`
}
func (q *Queries) UpdateActorPut(ctx context.Context, arg UpdateActorPutParams) (int64, error) {
result, err := q.db.ExecContext(ctx, updateActorPut, arg.FirstName, arg.LastName, arg.ActorID)
if err != nil {
return 0, err
}
return result.RowsAffected()
}