// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: containers.sql package sqlc import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const deleteContainerByBotID = `-- name: DeleteContainerByBotID :exec DELETE FROM containers WHERE bot_id = $1 ` func (q *Queries) DeleteContainerByBotID(ctx context.Context, botID pgtype.UUID) error { _, err := q.db.Exec(ctx, deleteContainerByBotID, botID) return err } const getContainerByBotID = `-- name: GetContainerByBotID :one SELECT id, bot_id, container_id, container_name, image, status, namespace, auto_start, container_path, created_at, updated_at, last_started_at, last_stopped_at FROM containers WHERE bot_id = $1 ORDER BY updated_at DESC LIMIT 1 ` func (q *Queries) GetContainerByBotID(ctx context.Context, botID pgtype.UUID) (Container, error) { row := q.db.QueryRow(ctx, getContainerByBotID, botID) var i Container err := row.Scan( &i.ID, &i.BotID, &i.ContainerID, &i.ContainerName, &i.Image, &i.Status, &i.Namespace, &i.AutoStart, &i.ContainerPath, &i.CreatedAt, &i.UpdatedAt, &i.LastStartedAt, &i.LastStoppedAt, ) return i, err } const listAutoStartContainers = `-- name: ListAutoStartContainers :many SELECT id, bot_id, container_id, container_name, image, status, namespace, auto_start, container_path, created_at, updated_at, last_started_at, last_stopped_at FROM containers WHERE auto_start = true ORDER BY updated_at DESC ` func (q *Queries) ListAutoStartContainers(ctx context.Context) ([]Container, error) { rows, err := q.db.Query(ctx, listAutoStartContainers) if err != nil { return nil, err } defer rows.Close() var items []Container for rows.Next() { var i Container if err := rows.Scan( &i.ID, &i.BotID, &i.ContainerID, &i.ContainerName, &i.Image, &i.Status, &i.Namespace, &i.AutoStart, &i.ContainerPath, &i.CreatedAt, &i.UpdatedAt, &i.LastStartedAt, &i.LastStoppedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const updateContainerStarted = `-- name: UpdateContainerStarted :exec UPDATE containers SET status = 'running', last_started_at = now(), updated_at = now() WHERE bot_id = $1 ` func (q *Queries) UpdateContainerStarted(ctx context.Context, botID pgtype.UUID) error { _, err := q.db.Exec(ctx, updateContainerStarted, botID) return err } const updateContainerStatus = `-- name: UpdateContainerStatus :exec UPDATE containers SET status = $1, updated_at = now() WHERE bot_id = $2 ` type UpdateContainerStatusParams struct { Status string `json:"status"` BotID pgtype.UUID `json:"bot_id"` } func (q *Queries) UpdateContainerStatus(ctx context.Context, arg UpdateContainerStatusParams) error { _, err := q.db.Exec(ctx, updateContainerStatus, arg.Status, arg.BotID) return err } const updateContainerStopped = `-- name: UpdateContainerStopped :exec UPDATE containers SET status = 'stopped', last_stopped_at = now(), updated_at = now() WHERE bot_id = $1 ` func (q *Queries) UpdateContainerStopped(ctx context.Context, botID pgtype.UUID) error { _, err := q.db.Exec(ctx, updateContainerStopped, botID) return err } const upsertContainer = `-- name: UpsertContainer :exec INSERT INTO containers ( bot_id, container_id, container_name, image, status, namespace, auto_start, container_path, last_started_at, last_stopped_at ) VALUES ( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10 ) ON CONFLICT (container_id) DO UPDATE SET bot_id = EXCLUDED.bot_id, container_name = EXCLUDED.container_name, image = EXCLUDED.image, status = EXCLUDED.status, namespace = EXCLUDED.namespace, auto_start = EXCLUDED.auto_start, container_path = EXCLUDED.container_path, last_started_at = EXCLUDED.last_started_at, last_stopped_at = EXCLUDED.last_stopped_at, updated_at = now() ` type UpsertContainerParams struct { BotID pgtype.UUID `json:"bot_id"` ContainerID string `json:"container_id"` ContainerName string `json:"container_name"` Image string `json:"image"` Status string `json:"status"` Namespace string `json:"namespace"` AutoStart bool `json:"auto_start"` ContainerPath string `json:"container_path"` LastStartedAt pgtype.Timestamptz `json:"last_started_at"` LastStoppedAt pgtype.Timestamptz `json:"last_stopped_at"` } func (q *Queries) UpsertContainer(ctx context.Context, arg UpsertContainerParams) error { _, err := q.db.Exec(ctx, upsertContainer, arg.BotID, arg.ContainerID, arg.ContainerName, arg.Image, arg.Status, arg.Namespace, arg.AutoStart, arg.ContainerPath, arg.LastStartedAt, arg.LastStoppedAt, ) return err }