// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.29.0 // source: item.sql package sqlc import ( "context" "time" ) const deleteItem = `-- name: DeleteItem :exec DELETE FROM item WHERE id = ?1 AND user_id = ?2 ` type DeleteItemParams struct { ID int64 UserID int64 } func (q *Queries) DeleteItem(ctx context.Context, arg DeleteItemParams) error { _, err := q.db.ExecContext(ctx, deleteItem, arg.ID, arg.UserID) return err } const getItem = `-- name: GetItem :one SELECT id, name, added, description, price, quantity, user_id FROM item WHERE id = ?1 AND user_id = ?2 LIMIT 1 ` type GetItemParams struct { ID int64 UserID int64 } func (q *Queries) GetItem(ctx context.Context, arg GetItemParams) (Item, error) { row := q.db.QueryRowContext(ctx, getItem, arg.ID, arg.UserID) var i Item err := row.Scan( &i.ID, &i.Name, &i.Added, &i.Description, &i.Price, &i.Quantity, &i.UserID, ) return i, err } const getItems = `-- name: GetItems :many SELECT id, name, added, description, price, quantity, user_id FROM item WHERE user_id = ?1 AND ( (name LIKE ?2 OR ?2 IS NULL) AND (added >= ?3 OR ?3 IS NULL) AND (added <= ?4 OR ?4 IS NULL) ) ORDER BY added DESC LIMIT ?6 OFFSET ?5 ` type GetItemsParams struct { UserID int64 Name *string Start *time.Time End *time.Time Offset int64 Limit int64 } func (q *Queries) GetItems(ctx context.Context, arg GetItemsParams) ([]Item, error) { rows, err := q.db.QueryContext(ctx, getItems, arg.UserID, arg.Name, arg.Start, arg.End, arg.Offset, arg.Limit, ) if err != nil { return nil, err } defer rows.Close() var items []Item for rows.Next() { var i Item if err := rows.Scan( &i.ID, &i.Name, &i.Added, &i.Description, &i.Price, &i.Quantity, &i.UserID, ); 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 getItemsCount = `-- name: GetItemsCount :one SELECT COUNT(id) FROM item WHERE user_id = ?1 AND ( (name LIKE ?2 OR ?2 IS NULL) AND (added >= ?3 OR ?3 IS NULL) AND (added <= ?4 OR ?4 IS NULL) ) LIMIT 1 ` type GetItemsCountParams struct { UserID int64 Name *string Start *time.Time End *time.Time } func (q *Queries) GetItemsCount(ctx context.Context, arg GetItemsCountParams) (int64, error) { row := q.db.QueryRowContext(ctx, getItemsCount, arg.UserID, arg.Name, arg.Start, arg.End, ) var count int64 err := row.Scan(&count) return count, err } const insertItem = `-- name: InsertItem :one INSERT INTO item ( name, added, description, price, quantity, user_id ) VALUES ( ?1, ?2, ?3, ?4, ?5, ?6 ) RETURNING id ` type InsertItemParams struct { Name string Added time.Time Description string Price float64 Quantity int64 UserID int64 } func (q *Queries) InsertItem(ctx context.Context, arg InsertItemParams) (int64, error) { row := q.db.QueryRowContext(ctx, insertItem, arg.Name, arg.Added, arg.Description, arg.Price, arg.Quantity, arg.UserID, ) var id int64 err := row.Scan(&id) return id, err } const updateItem = `-- name: UpdateItem :exec UPDATE item SET name = COALESCE(?1, name), description = COALESCE(?2, description), price = COALESCE(?3, price), quantity = COALESCE(?4, quantity) WHERE id = ?5 AND user_id = ?6 ` type UpdateItemParams struct { Name *string Description *string Price *float64 Quantity *int64 ID int64 UserID int64 } func (q *Queries) UpdateItem(ctx context.Context, arg UpdateItemParams) error { _, err := q.db.ExecContext(ctx, updateItem, arg.Name, arg.Description, arg.Price, arg.Quantity, arg.ID, arg.UserID, ) return err }