mirror of https://github.com/rocboss/paopao-ce
parent
7a9f62a20d
commit
bfef2fe7f9
@ -1,90 +0,0 @@
|
|||||||
// Code generated by sqlc. DO NOT EDIT.
|
|
||||||
// versions:
|
|
||||||
// sqlc v1.16.0
|
|
||||||
// source: city.sql
|
|
||||||
|
|
||||||
package dbr
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
)
|
|
||||||
|
|
||||||
const createCity = `-- name: CreateCity :one
|
|
||||||
INSERT INTO city (
|
|
||||||
name,
|
|
||||||
slug
|
|
||||||
) VALUES (
|
|
||||||
$1,
|
|
||||||
$2
|
|
||||||
) RETURNING slug, name
|
|
||||||
`
|
|
||||||
|
|
||||||
type CreateCityParams struct {
|
|
||||||
Name string
|
|
||||||
Slug string
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a new city. The slug must be unique.
|
|
||||||
// This is the second line of the comment
|
|
||||||
// This is the third line
|
|
||||||
func (q *Queries) CreateCity(ctx context.Context, arg CreateCityParams) (City, error) {
|
|
||||||
row := q.db.QueryRow(ctx, createCity, arg.Name, arg.Slug)
|
|
||||||
var i City
|
|
||||||
err := row.Scan(&i.Slug, &i.Name)
|
|
||||||
return i, err
|
|
||||||
}
|
|
||||||
|
|
||||||
const getCity = `-- name: GetCity :one
|
|
||||||
SELECT slug, name
|
|
||||||
FROM city
|
|
||||||
WHERE slug = $1
|
|
||||||
`
|
|
||||||
|
|
||||||
func (q *Queries) GetCity(ctx context.Context, slug string) (City, error) {
|
|
||||||
row := q.db.QueryRow(ctx, getCity, slug)
|
|
||||||
var i City
|
|
||||||
err := row.Scan(&i.Slug, &i.Name)
|
|
||||||
return i, err
|
|
||||||
}
|
|
||||||
|
|
||||||
const listCities = `-- name: ListCities :many
|
|
||||||
SELECT slug, name
|
|
||||||
FROM city
|
|
||||||
ORDER BY name
|
|
||||||
`
|
|
||||||
|
|
||||||
func (q *Queries) ListCities(ctx context.Context) ([]City, error) {
|
|
||||||
rows, err := q.db.Query(ctx, listCities)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer rows.Close()
|
|
||||||
var items []City
|
|
||||||
for rows.Next() {
|
|
||||||
var i City
|
|
||||||
if err := rows.Scan(&i.Slug, &i.Name); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
items = append(items, i)
|
|
||||||
}
|
|
||||||
if err := rows.Err(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return items, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
const updateCityName = `-- name: UpdateCityName :exec
|
|
||||||
UPDATE city
|
|
||||||
SET name = $2
|
|
||||||
WHERE slug = $1
|
|
||||||
`
|
|
||||||
|
|
||||||
type UpdateCityNameParams struct {
|
|
||||||
Slug string
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (q *Queries) UpdateCityName(ctx context.Context, arg UpdateCityNameParams) error {
|
|
||||||
_, err := q.db.Exec(ctx, updateCityName, arg.Slug, arg.Name)
|
|
||||||
return err
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
-- name: ListCities :many
|
|
||||||
SELECT *
|
|
||||||
FROM city
|
|
||||||
ORDER BY name;
|
|
||||||
|
|
||||||
-- name: GetCity :one
|
|
||||||
SELECT *
|
|
||||||
FROM city
|
|
||||||
WHERE slug = $1;
|
|
||||||
|
|
||||||
-- name: CreateCity :one
|
|
||||||
-- Create a new city. The slug must be unique.
|
|
||||||
-- This is the second line of the comment
|
|
||||||
-- This is the third line
|
|
||||||
INSERT INTO city (
|
|
||||||
name,
|
|
||||||
slug
|
|
||||||
) VALUES (
|
|
||||||
$1,
|
|
||||||
$2
|
|
||||||
) RETURNING *;
|
|
||||||
|
|
||||||
-- name: UpdateCityName :exec
|
|
||||||
UPDATE city
|
|
||||||
SET name = $2
|
|
||||||
WHERE slug = $1;
|
|
@ -0,0 +1,58 @@
|
|||||||
|
-- name: NewestTags :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE is_del = false AND quote_num > 0
|
||||||
|
ORDER BY id DESC
|
||||||
|
OFFSET $1 LIMIT $2;
|
||||||
|
|
||||||
|
-- name: HotTags :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE is_del = false AND quote_num > 0
|
||||||
|
ORDER BY quote_num DESC
|
||||||
|
OFFSET $1 LIMIT $2;
|
||||||
|
|
||||||
|
-- name: TagsByKeywordA :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE is_del AND quote_num > 0
|
||||||
|
ORDER BY quote_num DESC
|
||||||
|
OFFSET 0 LIMIT 6;
|
||||||
|
|
||||||
|
-- name: TagsByKeywordB :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE is_del = false AND tag LIKE $1
|
||||||
|
ORDER BY quote_num DESC
|
||||||
|
OFFSET 0 LIMIT 6;
|
||||||
|
|
||||||
|
-- name: InsertTags :one
|
||||||
|
INSERT INTO p_tag (user_id, tag, created_on, modified_on, quote_num)
|
||||||
|
VALUES ($1, $2, $3, $3, 1)
|
||||||
|
RETURNING id, user_id, tag, quote_num;
|
||||||
|
|
||||||
|
-- name: TagsByIdA :many
|
||||||
|
SELECT id
|
||||||
|
FROM p_tag
|
||||||
|
WHERE id = ANY(@ids::bigserial[]) AND is_del = false AND quote_num >= 0;
|
||||||
|
|
||||||
|
-- name: TagsByIdB :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE id = ANY(@ids::bigserial[]);
|
||||||
|
|
||||||
|
-- name: DecrTagsById :exec
|
||||||
|
UPDATE p_tag
|
||||||
|
SET quote_num = quote_num-1,
|
||||||
|
modified_on=$1
|
||||||
|
WHERE id = ANY(@ids::bigserial[]);
|
||||||
|
|
||||||
|
-- name: TagsByName :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE tag = ANY(@tags::varchar[]) AND is_del = false AND quote_num >= 0;
|
||||||
|
|
||||||
|
-- name: IncrTagsById :exec
|
||||||
|
UPDATE p_tag
|
||||||
|
SET quote_num = quote_num+1, modified_on = $1
|
||||||
|
WHERE id = ANY(@ids::bigserial[]);
|
@ -1,49 +0,0 @@
|
|||||||
-- name: ListVenues :many
|
|
||||||
SELECT *
|
|
||||||
FROM venue
|
|
||||||
WHERE city = $1
|
|
||||||
ORDER BY name;
|
|
||||||
|
|
||||||
-- name: DeleteVenue :exec
|
|
||||||
DELETE FROM venue
|
|
||||||
WHERE slug = $1 AND slug = $1;
|
|
||||||
|
|
||||||
-- name: GetVenue :one
|
|
||||||
SELECT *
|
|
||||||
FROM venue
|
|
||||||
WHERE slug = $1 AND city = $2;
|
|
||||||
|
|
||||||
-- name: CreateVenue :one
|
|
||||||
INSERT INTO venue (
|
|
||||||
slug,
|
|
||||||
name,
|
|
||||||
city,
|
|
||||||
created_at,
|
|
||||||
spotify_playlist,
|
|
||||||
status,
|
|
||||||
statuses,
|
|
||||||
tags
|
|
||||||
) VALUES (
|
|
||||||
$1,
|
|
||||||
$2,
|
|
||||||
$3,
|
|
||||||
NOW(),
|
|
||||||
$4,
|
|
||||||
$5,
|
|
||||||
$6,
|
|
||||||
$7
|
|
||||||
) RETURNING id;
|
|
||||||
|
|
||||||
-- name: UpdateVenueName :one
|
|
||||||
UPDATE venue
|
|
||||||
SET name = $2
|
|
||||||
WHERE slug = $1
|
|
||||||
RETURNING id;
|
|
||||||
|
|
||||||
-- name: VenueCountByCity :many
|
|
||||||
SELECT
|
|
||||||
city,
|
|
||||||
count(*)
|
|
||||||
FROM venue
|
|
||||||
GROUP BY 1
|
|
||||||
ORDER BY 1;
|
|
@ -1,4 +0,0 @@
|
|||||||
CREATE TABLE city (
|
|
||||||
slug text PRIMARY KEY,
|
|
||||||
name text NOT NULL
|
|
||||||
)
|
|
@ -0,0 +1,2 @@
|
|||||||
|
DROP TABLE IF EXISTS p_tag;
|
||||||
|
DROP INDEX IF EXISTS p_tag_tag_idx, p_tag_user_idx, p_tag_quote_num_idx;
|
@ -0,0 +1,17 @@
|
|||||||
|
CREATE TABLE p_tag (
|
||||||
|
id bigserial PRIMARY KEY,
|
||||||
|
user_id bigserial NOT NULL DEFAULT 0,
|
||||||
|
tag varchar(255) NOT NULL,
|
||||||
|
quote_num bigint NOT NULL DEFAULT 0,
|
||||||
|
created_on int NOT NULL DEFAULT 0,
|
||||||
|
modified_on int NOT NULL DEFAULT 0,
|
||||||
|
deleted_on int NOT NULL DEFAULT 0,
|
||||||
|
is_del boolean NOT NULL DEFAULT false,
|
||||||
|
UNIQUE (tag)
|
||||||
|
);
|
||||||
|
COMMENT ON TABLE p_tag IS '主题标签';
|
||||||
|
COMMENT ON COLUMN p_tag.is_del IS '是否删除';
|
||||||
|
CREATE UNIQUE INDEX p_tag_tag_idx ON p_tag (tag);
|
||||||
|
CREATE INDEX p_tag_user_idx ON p_tag (user_id);
|
||||||
|
CREATE INDEX p_tag_quote_num_idx On p_tag (quote_num);
|
||||||
|
|
@ -1,18 +0,0 @@
|
|||||||
CREATE TYPE status AS ENUM ('op!en', 'clo@sed');
|
|
||||||
COMMENT ON TYPE status IS 'Venues can be either open or closed';
|
|
||||||
|
|
||||||
CREATE TABLE venues (
|
|
||||||
id SERIAL primary key,
|
|
||||||
dropped text,
|
|
||||||
status status not null,
|
|
||||||
statuses status[],
|
|
||||||
slug text not null,
|
|
||||||
name varchar(255) not null,
|
|
||||||
city text not null references city(slug),
|
|
||||||
spotify_playlist varchar not null,
|
|
||||||
songkick_id text,
|
|
||||||
tags text[]
|
|
||||||
);
|
|
||||||
COMMENT ON TABLE venues IS 'Venues are places where muisc happens';
|
|
||||||
COMMENT ON COLUMN venues.slug IS 'This value appears in public URLs';
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
ALTER TABLE venues RENAME TO venue;
|
|
||||||
ALTER TABLE venue ADD COLUMN created_at TIMESTAMP NOT NULL DEFAULT NOW();
|
|
||||||
ALTER TABLE venue DROP COLUMN dropped;
|
|
@ -0,0 +1,348 @@
|
|||||||
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// sqlc v1.16.0
|
||||||
|
// source: topic.sql
|
||||||
|
|
||||||
|
package dbr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/jackc/pgx/v5/pgtype"
|
||||||
|
)
|
||||||
|
|
||||||
|
const decrTagsById = `-- name: DecrTagsById :exec
|
||||||
|
UPDATE p_tag
|
||||||
|
SET quote_num = quote_num-1,
|
||||||
|
modified_on=$1
|
||||||
|
WHERE id = ANY($2::bigserial[])
|
||||||
|
`
|
||||||
|
|
||||||
|
type DecrTagsByIdParams struct {
|
||||||
|
ModifiedOn int32
|
||||||
|
Ids pgtype.Array[int64]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) DecrTagsById(ctx context.Context, arg *DecrTagsByIdParams) error {
|
||||||
|
_, err := q.db.Exec(ctx, decrTagsById, arg.ModifiedOn, arg.Ids)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
const hotTags = `-- name: HotTags :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE is_del = false AND quote_num > 0
|
||||||
|
ORDER BY quote_num DESC
|
||||||
|
OFFSET $1 LIMIT $2
|
||||||
|
`
|
||||||
|
|
||||||
|
type HotTagsParams struct {
|
||||||
|
Offset int32
|
||||||
|
Limit int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type HotTagsRow struct {
|
||||||
|
ID int64
|
||||||
|
UserID int64
|
||||||
|
Tag string
|
||||||
|
QuoteNum int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) HotTags(ctx context.Context, arg *HotTagsParams) ([]*HotTagsRow, error) {
|
||||||
|
rows, err := q.db.Query(ctx, hotTags, arg.Offset, arg.Limit)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []*HotTagsRow
|
||||||
|
for rows.Next() {
|
||||||
|
var i HotTagsRow
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.UserID,
|
||||||
|
&i.Tag,
|
||||||
|
&i.QuoteNum,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, &i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const incrTagsById = `-- name: IncrTagsById :exec
|
||||||
|
UPDATE p_tag
|
||||||
|
SET quote_num = quote_num+1, modified_on = $1
|
||||||
|
WHERE id = ANY($2::bigserial[])
|
||||||
|
`
|
||||||
|
|
||||||
|
type IncrTagsByIdParams struct {
|
||||||
|
ModifiedOn int32
|
||||||
|
Ids pgtype.Array[int64]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) IncrTagsById(ctx context.Context, arg *IncrTagsByIdParams) error {
|
||||||
|
_, err := q.db.Exec(ctx, incrTagsById, arg.ModifiedOn, arg.Ids)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
const insertTags = `-- name: InsertTags :one
|
||||||
|
INSERT INTO p_tag (user_id, tag, created_on, modified_on, quote_num)
|
||||||
|
VALUES ($1, $2, $3, $3, 1)
|
||||||
|
RETURNING id, user_id, tag, quote_num
|
||||||
|
`
|
||||||
|
|
||||||
|
type InsertTagsParams struct {
|
||||||
|
UserID int64
|
||||||
|
Tag string
|
||||||
|
CreatedOn int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type InsertTagsRow struct {
|
||||||
|
ID int64
|
||||||
|
UserID int64
|
||||||
|
Tag string
|
||||||
|
QuoteNum int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) InsertTags(ctx context.Context, arg *InsertTagsParams) (*InsertTagsRow, error) {
|
||||||
|
row := q.db.QueryRow(ctx, insertTags, arg.UserID, arg.Tag, arg.CreatedOn)
|
||||||
|
var i InsertTagsRow
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.UserID,
|
||||||
|
&i.Tag,
|
||||||
|
&i.QuoteNum,
|
||||||
|
)
|
||||||
|
return &i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const newestTags = `-- name: NewestTags :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE is_del = false AND quote_num > 0
|
||||||
|
ORDER BY id DESC
|
||||||
|
OFFSET $1 LIMIT $2
|
||||||
|
`
|
||||||
|
|
||||||
|
type NewestTagsParams struct {
|
||||||
|
Offset int32
|
||||||
|
Limit int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NewestTagsRow struct {
|
||||||
|
ID int64
|
||||||
|
UserID int64
|
||||||
|
Tag string
|
||||||
|
QuoteNum int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) NewestTags(ctx context.Context, arg *NewestTagsParams) ([]*NewestTagsRow, error) {
|
||||||
|
rows, err := q.db.Query(ctx, newestTags, arg.Offset, arg.Limit)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []*NewestTagsRow
|
||||||
|
for rows.Next() {
|
||||||
|
var i NewestTagsRow
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.UserID,
|
||||||
|
&i.Tag,
|
||||||
|
&i.QuoteNum,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, &i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const tagsByIdA = `-- name: TagsByIdA :many
|
||||||
|
SELECT id
|
||||||
|
FROM p_tag
|
||||||
|
WHERE id = ANY($1::bigserial[]) AND is_del = false AND quote_num >= 0
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) TagsByIdA(ctx context.Context, ids pgtype.Array[int64]) ([]int64, error) {
|
||||||
|
rows, err := q.db.Query(ctx, tagsByIdA, ids)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []int64
|
||||||
|
for rows.Next() {
|
||||||
|
var id int64
|
||||||
|
if err := rows.Scan(&id); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, id)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const tagsByIdB = `-- name: TagsByIdB :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE id = ANY($1::bigserial[])
|
||||||
|
`
|
||||||
|
|
||||||
|
type TagsByIdBRow struct {
|
||||||
|
ID int64
|
||||||
|
UserID int64
|
||||||
|
Tag string
|
||||||
|
QuoteNum int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) TagsByIdB(ctx context.Context, ids pgtype.Array[int64]) ([]*TagsByIdBRow, error) {
|
||||||
|
rows, err := q.db.Query(ctx, tagsByIdB, ids)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []*TagsByIdBRow
|
||||||
|
for rows.Next() {
|
||||||
|
var i TagsByIdBRow
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.UserID,
|
||||||
|
&i.Tag,
|
||||||
|
&i.QuoteNum,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, &i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const tagsByKeywordA = `-- name: TagsByKeywordA :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE is_del AND quote_num > 0
|
||||||
|
ORDER BY quote_num DESC
|
||||||
|
OFFSET 0 LIMIT 6
|
||||||
|
`
|
||||||
|
|
||||||
|
type TagsByKeywordARow struct {
|
||||||
|
ID int64
|
||||||
|
UserID int64
|
||||||
|
Tag string
|
||||||
|
QuoteNum int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) TagsByKeywordA(ctx context.Context) ([]*TagsByKeywordARow, error) {
|
||||||
|
rows, err := q.db.Query(ctx, tagsByKeywordA)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []*TagsByKeywordARow
|
||||||
|
for rows.Next() {
|
||||||
|
var i TagsByKeywordARow
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.UserID,
|
||||||
|
&i.Tag,
|
||||||
|
&i.QuoteNum,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, &i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const tagsByKeywordB = `-- name: TagsByKeywordB :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE is_del = false AND tag LIKE $1
|
||||||
|
ORDER BY quote_num DESC
|
||||||
|
OFFSET 0 LIMIT 6
|
||||||
|
`
|
||||||
|
|
||||||
|
type TagsByKeywordBRow struct {
|
||||||
|
ID int64
|
||||||
|
UserID int64
|
||||||
|
Tag string
|
||||||
|
QuoteNum int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) TagsByKeywordB(ctx context.Context, tag string) ([]*TagsByKeywordBRow, error) {
|
||||||
|
rows, err := q.db.Query(ctx, tagsByKeywordB, tag)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []*TagsByKeywordBRow
|
||||||
|
for rows.Next() {
|
||||||
|
var i TagsByKeywordBRow
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.UserID,
|
||||||
|
&i.Tag,
|
||||||
|
&i.QuoteNum,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, &i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const tagsByName = `-- name: TagsByName :many
|
||||||
|
SELECT id, user_id, tag, quote_num
|
||||||
|
FROM p_tag
|
||||||
|
WHERE tag = ANY($1::varchar[]) AND is_del = false AND quote_num >= 0
|
||||||
|
`
|
||||||
|
|
||||||
|
type TagsByNameRow struct {
|
||||||
|
ID int64
|
||||||
|
UserID int64
|
||||||
|
Tag string
|
||||||
|
QuoteNum int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) TagsByName(ctx context.Context, tags pgtype.Array[string]) ([]*TagsByNameRow, error) {
|
||||||
|
rows, err := q.db.Query(ctx, tagsByName, tags)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []*TagsByNameRow
|
||||||
|
for rows.Next() {
|
||||||
|
var i TagsByNameRow
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.UserID,
|
||||||
|
&i.Tag,
|
||||||
|
&i.QuoteNum,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, &i)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
@ -1,189 +0,0 @@
|
|||||||
// Code generated by sqlc. DO NOT EDIT.
|
|
||||||
// versions:
|
|
||||||
// sqlc v1.16.0
|
|
||||||
// source: venue.sql
|
|
||||||
|
|
||||||
package dbr
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
"github.com/jackc/pgx/v5/pgtype"
|
|
||||||
)
|
|
||||||
|
|
||||||
const createVenue = `-- name: CreateVenue :one
|
|
||||||
INSERT INTO venue (
|
|
||||||
slug,
|
|
||||||
name,
|
|
||||||
city,
|
|
||||||
created_at,
|
|
||||||
spotify_playlist,
|
|
||||||
status,
|
|
||||||
statuses,
|
|
||||||
tags
|
|
||||||
) VALUES (
|
|
||||||
$1,
|
|
||||||
$2,
|
|
||||||
$3,
|
|
||||||
NOW(),
|
|
||||||
$4,
|
|
||||||
$5,
|
|
||||||
$6,
|
|
||||||
$7
|
|
||||||
) RETURNING id
|
|
||||||
`
|
|
||||||
|
|
||||||
type CreateVenueParams struct {
|
|
||||||
Slug string
|
|
||||||
Name string
|
|
||||||
City string
|
|
||||||
SpotifyPlaylist string
|
|
||||||
Status Status
|
|
||||||
Statuses pgtype.Array[Status]
|
|
||||||
Tags pgtype.Array[string]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (q *Queries) CreateVenue(ctx context.Context, arg CreateVenueParams) (int32, error) {
|
|
||||||
row := q.db.QueryRow(ctx, createVenue,
|
|
||||||
arg.Slug,
|
|
||||||
arg.Name,
|
|
||||||
arg.City,
|
|
||||||
arg.SpotifyPlaylist,
|
|
||||||
arg.Status,
|
|
||||||
arg.Statuses,
|
|
||||||
arg.Tags,
|
|
||||||
)
|
|
||||||
var id int32
|
|
||||||
err := row.Scan(&id)
|
|
||||||
return id, err
|
|
||||||
}
|
|
||||||
|
|
||||||
const deleteVenue = `-- name: DeleteVenue :exec
|
|
||||||
DELETE FROM venue
|
|
||||||
WHERE slug = $1 AND slug = $1
|
|
||||||
`
|
|
||||||
|
|
||||||
func (q *Queries) DeleteVenue(ctx context.Context, slug string) error {
|
|
||||||
_, err := q.db.Exec(ctx, deleteVenue, slug)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
const getVenue = `-- name: GetVenue :one
|
|
||||||
SELECT id, status, statuses, slug, name, city, spotify_playlist, songkick_id, tags, created_at
|
|
||||||
FROM venue
|
|
||||||
WHERE slug = $1 AND city = $2
|
|
||||||
`
|
|
||||||
|
|
||||||
type GetVenueParams struct {
|
|
||||||
Slug string
|
|
||||||
City string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (q *Queries) GetVenue(ctx context.Context, arg GetVenueParams) (Venue, error) {
|
|
||||||
row := q.db.QueryRow(ctx, getVenue, arg.Slug, arg.City)
|
|
||||||
var i Venue
|
|
||||||
err := row.Scan(
|
|
||||||
&i.ID,
|
|
||||||
&i.Status,
|
|
||||||
&i.Statuses,
|
|
||||||
&i.Slug,
|
|
||||||
&i.Name,
|
|
||||||
&i.City,
|
|
||||||
&i.SpotifyPlaylist,
|
|
||||||
&i.SongkickID,
|
|
||||||
&i.Tags,
|
|
||||||
&i.CreatedAt,
|
|
||||||
)
|
|
||||||
return i, err
|
|
||||||
}
|
|
||||||
|
|
||||||
const listVenues = `-- name: ListVenues :many
|
|
||||||
SELECT id, status, statuses, slug, name, city, spotify_playlist, songkick_id, tags, created_at
|
|
||||||
FROM venue
|
|
||||||
WHERE city = $1
|
|
||||||
ORDER BY name
|
|
||||||
`
|
|
||||||
|
|
||||||
func (q *Queries) ListVenues(ctx context.Context, city string) ([]Venue, error) {
|
|
||||||
rows, err := q.db.Query(ctx, listVenues, city)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer rows.Close()
|
|
||||||
var items []Venue
|
|
||||||
for rows.Next() {
|
|
||||||
var i Venue
|
|
||||||
if err := rows.Scan(
|
|
||||||
&i.ID,
|
|
||||||
&i.Status,
|
|
||||||
&i.Statuses,
|
|
||||||
&i.Slug,
|
|
||||||
&i.Name,
|
|
||||||
&i.City,
|
|
||||||
&i.SpotifyPlaylist,
|
|
||||||
&i.SongkickID,
|
|
||||||
&i.Tags,
|
|
||||||
&i.CreatedAt,
|
|
||||||
); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
items = append(items, i)
|
|
||||||
}
|
|
||||||
if err := rows.Err(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return items, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
const updateVenueName = `-- name: UpdateVenueName :one
|
|
||||||
UPDATE venue
|
|
||||||
SET name = $2
|
|
||||||
WHERE slug = $1
|
|
||||||
RETURNING id
|
|
||||||
`
|
|
||||||
|
|
||||||
type UpdateVenueNameParams struct {
|
|
||||||
Slug string
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (q *Queries) UpdateVenueName(ctx context.Context, arg UpdateVenueNameParams) (int32, error) {
|
|
||||||
row := q.db.QueryRow(ctx, updateVenueName, arg.Slug, arg.Name)
|
|
||||||
var id int32
|
|
||||||
err := row.Scan(&id)
|
|
||||||
return id, err
|
|
||||||
}
|
|
||||||
|
|
||||||
const venueCountByCity = `-- name: VenueCountByCity :many
|
|
||||||
SELECT
|
|
||||||
city,
|
|
||||||
count(*)
|
|
||||||
FROM venue
|
|
||||||
GROUP BY 1
|
|
||||||
ORDER BY 1
|
|
||||||
`
|
|
||||||
|
|
||||||
type VenueCountByCityRow struct {
|
|
||||||
City string
|
|
||||||
Count int64
|
|
||||||
}
|
|
||||||
|
|
||||||
func (q *Queries) VenueCountByCity(ctx context.Context) ([]VenueCountByCityRow, error) {
|
|
||||||
rows, err := q.db.Query(ctx, venueCountByCity)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer rows.Close()
|
|
||||||
var items []VenueCountByCityRow
|
|
||||||
for rows.Next() {
|
|
||||||
var i VenueCountByCityRow
|
|
||||||
if err := rows.Scan(&i.City, &i.Count); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
items = append(items, i)
|
|
||||||
}
|
|
||||||
if err := rows.Err(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return items, nil
|
|
||||||
}
|
|
Loading…
Reference in new issue