// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: warehouse.sql package db import ( "context" "time" "github.com/jackc/pgx/v5/pgtype" ) const createWarehouse = `-- name: CreateWarehouse :one INSERT INTO warehouses (name, description, address, created_at) VALUES ( $1, $2, $3, $4 ) RETURNING id, name, description, address, created_at, updated_at ` type CreateWarehouseParams struct { Name string `db:"name" json:"name"` Description pgtype.Text `db:"description" json:"description"` Address pgtype.Text `db:"address" json:"address"` CreatedAt time.Time `db:"created_at" json:"createdAt"` } func (q *Queries) CreateWarehouse(ctx context.Context, arg CreateWarehouseParams) (Warehouse, error) { row := q.db.QueryRow(ctx, createWarehouse, arg.Name, arg.Description, arg.Address, arg.CreatedAt, ) var i Warehouse err := row.Scan( &i.ID, &i.Name, &i.Description, &i.Address, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const deleteWarehouse = `-- name: DeleteWarehouse :exec DELETE FROM warehouses WHERE id = $1 ` func (q *Queries) DeleteWarehouse(ctx context.Context, id int64) error { _, err := q.db.Exec(ctx, deleteWarehouse, id) return err } const getWarehouseByID = `-- name: GetWarehouseByID :one SELECT id, name, description, address, created_at, updated_at FROM warehouses WHERE id = $1 ` func (q *Queries) GetWarehouseByID(ctx context.Context, id int64) (Warehouse, error) { row := q.db.QueryRow(ctx, getWarehouseByID, id) var i Warehouse err := row.Scan( &i.ID, &i.Name, &i.Description, &i.Address, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const listWarehouses = `-- name: ListWarehouses :many SELECT id, name, description, address, created_at, updated_at FROM warehouses ORDER BY created_at DESC ` func (q *Queries) ListWarehouses(ctx context.Context) ([]Warehouse, error) { rows, err := q.db.Query(ctx, listWarehouses) if err != nil { return nil, err } defer rows.Close() var items []Warehouse for rows.Next() { var i Warehouse if err := rows.Scan( &i.ID, &i.Name, &i.Description, &i.Address, &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 updateWarehouse = `-- name: UpdateWarehouse :one UPDATE warehouses SET name = CASE WHEN $1 = '' THEN name ELSE $1 END, description = coalesce($2, description), address = coalesce($3, address), updated_at = $4 WHERE id = $5 RETURNING id, name, description, address, created_at, updated_at ` type UpdateWarehouseParams struct { Name interface{} `db:"name" json:"name"` Description pgtype.Text `db:"description" json:"description"` Address pgtype.Text `db:"address" json:"address"` UpdatedAt time.Time `db:"updated_at" json:"updatedAt"` ID int64 `db:"id" json:"id"` } func (q *Queries) UpdateWarehouse(ctx context.Context, arg UpdateWarehouseParams) (Warehouse, error) { row := q.db.QueryRow(ctx, updateWarehouse, arg.Name, arg.Description, arg.Address, arg.UpdatedAt, arg.ID, ) var i Warehouse err := row.Scan( &i.ID, &i.Name, &i.Description, &i.Address, &i.CreatedAt, &i.UpdatedAt, ) return i, err }