// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: bookmarks.sql package sqlc import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const AddBookmarkTag = `-- name: AddBookmarkTag :exec INSERT INTO bookmark_tags (bookmark_id, tag_id) VALUES ($1, $2) ON CONFLICT DO NOTHING ` type AddBookmarkTagParams struct { BookmarkID pgtype.UUID `json:"bookmarkId"` TagID pgtype.UUID `json:"tagId"` } func (q *Queries) AddBookmarkTag(ctx context.Context, arg AddBookmarkTagParams) error { _, err := q.db.Exec(ctx, AddBookmarkTag, arg.BookmarkID, arg.TagID) return err } const CreateBookmark = `-- name: CreateBookmark :one INSERT INTO bookmarks (title, url, description, favicon_url, screenshot_url, user_id, is_archived, is_favorite) VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING id, title, url, description, favicon_url, screenshot_url, user_id, is_archived, is_favorite, created_at, updated_at ` type CreateBookmarkParams struct { Title string `json:"title"` Url string `json:"url"` Description *string `json:"description"` FaviconUrl *string `json:"faviconUrl"` ScreenshotUrl *string `json:"screenshotUrl"` UserID pgtype.UUID `json:"userId"` IsArchived *bool `json:"isArchived"` IsFavorite *bool `json:"isFavorite"` } func (q *Queries) CreateBookmark(ctx context.Context, arg CreateBookmarkParams) (Bookmark, error) { row := q.db.QueryRow(ctx, CreateBookmark, arg.Title, arg.Url, arg.Description, arg.FaviconUrl, arg.ScreenshotUrl, arg.UserID, arg.IsArchived, arg.IsFavorite, ) var i Bookmark err := row.Scan( &i.ID, &i.Title, &i.Url, &i.Description, &i.FaviconUrl, &i.ScreenshotUrl, &i.UserID, &i.IsArchived, &i.IsFavorite, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const DeleteBookmark = `-- name: DeleteBookmark :exec DELETE FROM bookmarks WHERE id = $1 AND user_id = $2 ` type DeleteBookmarkParams struct { ID pgtype.UUID `json:"id"` UserID pgtype.UUID `json:"userId"` } func (q *Queries) DeleteBookmark(ctx context.Context, arg DeleteBookmarkParams) error { _, err := q.db.Exec(ctx, DeleteBookmark, arg.ID, arg.UserID) return err } const GetBookmarkByID = `-- name: GetBookmarkByID :one SELECT id, title, url, description, favicon_url, screenshot_url, user_id, is_archived, is_favorite, created_at, updated_at FROM bookmarks WHERE id = $1 AND user_id = $2 LIMIT 1 ` type GetBookmarkByIDParams struct { ID pgtype.UUID `json:"id"` UserID pgtype.UUID `json:"userId"` } func (q *Queries) GetBookmarkByID(ctx context.Context, arg GetBookmarkByIDParams) (Bookmark, error) { row := q.db.QueryRow(ctx, GetBookmarkByID, arg.ID, arg.UserID) var i Bookmark err := row.Scan( &i.ID, &i.Title, &i.Url, &i.Description, &i.FaviconUrl, &i.ScreenshotUrl, &i.UserID, &i.IsArchived, &i.IsFavorite, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const GetBookmarksByTag = `-- name: GetBookmarksByTag :many SELECT b.id, b.title, b.url, b.description, b.favicon_url, b.screenshot_url, b.user_id, b.is_archived, b.is_favorite, b.created_at, b.updated_at FROM bookmarks b INNER JOIN bookmark_tags bt ON b.id = bt.bookmark_id INNER JOIN tags t ON bt.tag_id = t.id WHERE t.id = $1 AND b.user_id = $2 ORDER BY b.created_at DESC LIMIT $3 OFFSET $4 ` type GetBookmarksByTagParams struct { ID pgtype.UUID `json:"id"` UserID pgtype.UUID `json:"userId"` Limit int32 `json:"limit"` Offset int32 `json:"offset"` } func (q *Queries) GetBookmarksByTag(ctx context.Context, arg GetBookmarksByTagParams) ([]Bookmark, error) { rows, err := q.db.Query(ctx, GetBookmarksByTag, arg.ID, arg.UserID, arg.Limit, arg.Offset, ) if err != nil { return nil, err } defer rows.Close() items := []Bookmark{} for rows.Next() { var i Bookmark if err := rows.Scan( &i.ID, &i.Title, &i.Url, &i.Description, &i.FaviconUrl, &i.ScreenshotUrl, &i.UserID, &i.IsArchived, &i.IsFavorite, &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 GetBookmarksByUser = `-- name: GetBookmarksByUser :many SELECT id, title, url, description, favicon_url, screenshot_url, user_id, is_archived, is_favorite, created_at, updated_at FROM bookmarks WHERE user_id = $1 ORDER BY created_at DESC LIMIT $2 OFFSET $3 ` type GetBookmarksByUserParams struct { UserID pgtype.UUID `json:"userId"` Limit int32 `json:"limit"` Offset int32 `json:"offset"` } func (q *Queries) GetBookmarksByUser(ctx context.Context, arg GetBookmarksByUserParams) ([]Bookmark, error) { rows, err := q.db.Query(ctx, GetBookmarksByUser, arg.UserID, arg.Limit, arg.Offset) if err != nil { return nil, err } defer rows.Close() items := []Bookmark{} for rows.Next() { var i Bookmark if err := rows.Scan( &i.ID, &i.Title, &i.Url, &i.Description, &i.FaviconUrl, &i.ScreenshotUrl, &i.UserID, &i.IsArchived, &i.IsFavorite, &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 RemoveBookmarkTag = `-- name: RemoveBookmarkTag :exec DELETE FROM bookmark_tags WHERE bookmark_id = $1 AND tag_id = $2 ` type RemoveBookmarkTagParams struct { BookmarkID pgtype.UUID `json:"bookmarkId"` TagID pgtype.UUID `json:"tagId"` } func (q *Queries) RemoveBookmarkTag(ctx context.Context, arg RemoveBookmarkTagParams) error { _, err := q.db.Exec(ctx, RemoveBookmarkTag, arg.BookmarkID, arg.TagID) return err } const SearchBookmarks = `-- name: SearchBookmarks :many SELECT id, title, url, description, favicon_url, screenshot_url, user_id, is_archived, is_favorite, created_at, updated_at FROM bookmarks WHERE user_id = $1 AND ( title ILIKE $2 OR description ILIKE $2 OR url ILIKE $2 ) ORDER BY created_at DESC LIMIT $3 OFFSET $4 ` type SearchBookmarksParams struct { UserID pgtype.UUID `json:"userId"` Title string `json:"title"` Limit int32 `json:"limit"` Offset int32 `json:"offset"` } func (q *Queries) SearchBookmarks(ctx context.Context, arg SearchBookmarksParams) ([]Bookmark, error) { rows, err := q.db.Query(ctx, SearchBookmarks, arg.UserID, arg.Title, arg.Limit, arg.Offset, ) if err != nil { return nil, err } defer rows.Close() items := []Bookmark{} for rows.Next() { var i Bookmark if err := rows.Scan( &i.ID, &i.Title, &i.Url, &i.Description, &i.FaviconUrl, &i.ScreenshotUrl, &i.UserID, &i.IsArchived, &i.IsFavorite, &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 UpdateBookmark = `-- name: UpdateBookmark :one UPDATE bookmarks SET title = $2, url = $3, description = $4, favicon_url = $5, screenshot_url = $6, is_archived = $7, is_favorite = $8, updated_at = CURRENT_TIMESTAMP WHERE id = $1 AND user_id = $9 RETURNING id, title, url, description, favicon_url, screenshot_url, user_id, is_archived, is_favorite, created_at, updated_at ` type UpdateBookmarkParams struct { ID pgtype.UUID `json:"id"` Title string `json:"title"` Url string `json:"url"` Description *string `json:"description"` FaviconUrl *string `json:"faviconUrl"` ScreenshotUrl *string `json:"screenshotUrl"` IsArchived *bool `json:"isArchived"` IsFavorite *bool `json:"isFavorite"` UserID pgtype.UUID `json:"userId"` } func (q *Queries) UpdateBookmark(ctx context.Context, arg UpdateBookmarkParams) (Bookmark, error) { row := q.db.QueryRow(ctx, UpdateBookmark, arg.ID, arg.Title, arg.Url, arg.Description, arg.FaviconUrl, arg.ScreenshotUrl, arg.IsArchived, arg.IsFavorite, arg.UserID, ) var i Bookmark err := row.Scan( &i.ID, &i.Title, &i.Url, &i.Description, &i.FaviconUrl, &i.ScreenshotUrl, &i.UserID, &i.IsArchived, &i.IsFavorite, &i.CreatedAt, &i.UpdatedAt, ) return i, err }