// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.27.0 // source: share.sql package database import ( "context" "github.com/google/uuid" "github.com/jackc/pgx/v5/pgtype" ) const createShare = `-- name: CreateShare :exec INSERT INTO shares ( id, entity_type, entity_id, entity_date, owner, expiration ) VALUES ($1, $2, $3, $4, $5, $6) ` type CreateShareParams struct { ID string `json:"id"` EntityType string `json:"entityType"` EntityID uuid.UUID `json:"entityId"` EntityDate pgtype.Timestamptz `json:"entityDate"` Owner int `json:"owner"` Expiration pgtype.Timestamptz `json:"expiration"` } func (q *Queries) CreateShare(ctx context.Context, arg CreateShareParams) error { _, err := q.db.Exec(ctx, createShare, arg.ID, arg.EntityType, arg.EntityID, arg.EntityDate, arg.Owner, arg.Expiration, ) return err } const deleteShare = `-- name: DeleteShare :exec DELETE FROM shares WHERE id = $1 ` func (q *Queries) DeleteShare(ctx context.Context, id string) error { _, err := q.db.Exec(ctx, deleteShare, id) return err } const getShare = `-- name: GetShare :one SELECT id, entity_type, entity_id, entity_date, owner, expiration FROM shares WHERE id = $1 ` func (q *Queries) GetShare(ctx context.Context, id string) (Share, error) { row := q.db.QueryRow(ctx, getShare, id) var i Share err := row.Scan( &i.ID, &i.EntityType, &i.EntityID, &i.EntityDate, &i.Owner, &i.Expiration, ) return i, err } const getSharesP = `-- name: GetSharesP :many SELECT s.id, s.entity_type, s.entity_id, s.entity_date, s.owner, s.expiration FROM shares s WHERE CASE WHEN $1::INTEGER IS NOT NULL THEN s.owner = $1 ELSE TRUE END ORDER BY CASE WHEN $2::TEXT = 'asc' THEN s.entity_date END ASC, CASE WHEN $2::TEXT = 'desc' THEN s.entity_date END DESC OFFSET $3 ROWS FETCH NEXT $4 ROWS ONLY ` type GetSharesPParams struct { Owner *int32 `json:"owner"` Direction string `json:"direction"` Offset int32 `json:"offset"` PerPage int32 `json:"perPage"` } func (q *Queries) GetSharesP(ctx context.Context, arg GetSharesPParams) ([]Share, error) { rows, err := q.db.Query(ctx, getSharesP, arg.Owner, arg.Direction, arg.Offset, arg.PerPage, ) if err != nil { return nil, err } defer rows.Close() var items []Share for rows.Next() { var i Share if err := rows.Scan( &i.ID, &i.EntityType, &i.EntityID, &i.EntityDate, &i.Owner, &i.Expiration, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const getSharesPCount = `-- name: GetSharesPCount :one SELECT COUNT(*) FROM shares s WHERE CASE WHEN $1::INTEGER IS NOT NULL THEN s.owner = $1 ELSE TRUE END ` func (q *Queries) GetSharesPCount(ctx context.Context, owner *int32) (int64, error) { row := q.db.QueryRow(ctx, getSharesPCount, owner) var count int64 err := row.Scan(&count) return count, err } const pruneShares = `-- name: PruneShares :exec DELETE FROM shares WHERE expiration < NOW() ` func (q *Queries) PruneShares(ctx context.Context) error { _, err := q.db.Exec(ctx, pruneShares) return err }