mirror of
https://github.com/gabehf/Koito.git
synced 2026-04-22 20:11:50 -07:00
maybe actually fixed now
This commit is contained in:
parent
913c6c00e5
commit
738ac871e6
12 changed files with 293 additions and 298 deletions
|
|
@ -695,43 +695,29 @@ func (q *Queries) InsertListen(ctx context.Context, arg InsertListenParams) erro
|
|||
}
|
||||
|
||||
const listenActivity = `-- name: ListenActivity :many
|
||||
WITH buckets AS (
|
||||
SELECT
|
||||
d::date AS bucket_start_date,
|
||||
(d + $3::interval)::date AS bucket_end_date
|
||||
FROM generate_series(
|
||||
$1::date,
|
||||
$2::date,
|
||||
$3::interval
|
||||
) AS d
|
||||
),
|
||||
bucketed_listens AS (
|
||||
SELECT
|
||||
b.bucket_start_date::timestamptz,
|
||||
COUNT(l.listened_at) AS listen_count
|
||||
FROM buckets b
|
||||
LEFT JOIN listens l
|
||||
ON l.listened_at >= b.bucket_start_date::timestamptz
|
||||
AND l.listened_at < b.bucket_end_date::timestamptz
|
||||
GROUP BY b.bucket_start_date
|
||||
ORDER BY b.bucket_start_date
|
||||
)
|
||||
SELECT bucketed_listens.bucket_start_date::timestamptz, listen_count FROM bucketed_listens
|
||||
SELECT
|
||||
(listened_at AT TIME ZONE $1::text)::date as day,
|
||||
COUNT(*) AS listen_count
|
||||
FROM listens
|
||||
WHERE listened_at >= $2
|
||||
AND listened_at < $3
|
||||
GROUP BY day
|
||||
ORDER BY day
|
||||
`
|
||||
|
||||
type ListenActivityParams struct {
|
||||
Column1 pgtype.Date
|
||||
Column2 pgtype.Date
|
||||
Column3 pgtype.Interval
|
||||
Column1 string
|
||||
ListenedAt time.Time
|
||||
ListenedAt_2 time.Time
|
||||
}
|
||||
|
||||
type ListenActivityRow struct {
|
||||
BucketedListensBucketStartDate time.Time
|
||||
ListenCount int64
|
||||
Day pgtype.Date
|
||||
ListenCount int64
|
||||
}
|
||||
|
||||
func (q *Queries) ListenActivity(ctx context.Context, arg ListenActivityParams) ([]ListenActivityRow, error) {
|
||||
rows, err := q.db.Query(ctx, listenActivity, arg.Column1, arg.Column2, arg.Column3)
|
||||
rows, err := q.db.Query(ctx, listenActivity, arg.Column1, arg.ListenedAt, arg.ListenedAt_2)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -739,7 +725,7 @@ func (q *Queries) ListenActivity(ctx context.Context, arg ListenActivityParams)
|
|||
var items []ListenActivityRow
|
||||
for rows.Next() {
|
||||
var i ListenActivityRow
|
||||
if err := rows.Scan(&i.BucketedListensBucketStartDate, &i.ListenCount); err != nil {
|
||||
if err := rows.Scan(&i.Day, &i.ListenCount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
|
|
@ -751,46 +737,36 @@ func (q *Queries) ListenActivity(ctx context.Context, arg ListenActivityParams)
|
|||
}
|
||||
|
||||
const listenActivityForArtist = `-- name: ListenActivityForArtist :many
|
||||
WITH buckets AS (
|
||||
SELECT generate_series($1::timestamptz, $2::timestamptz, $3::interval) AS bucket_start
|
||||
),
|
||||
filtered_listens AS (
|
||||
SELECT l.track_id, l.listened_at, l.client, l.user_id
|
||||
FROM listens l
|
||||
JOIN artist_tracks t ON l.track_id = t.track_id
|
||||
WHERE t.artist_id = $4
|
||||
),
|
||||
bucketed_listens AS (
|
||||
SELECT
|
||||
b.bucket_start,
|
||||
COUNT(l.listened_at) AS listen_count
|
||||
FROM buckets b
|
||||
LEFT JOIN filtered_listens l
|
||||
ON l.listened_at >= b.bucket_start
|
||||
AND l.listened_at < b.bucket_start + $3::interval
|
||||
GROUP BY b.bucket_start
|
||||
ORDER BY b.bucket_start
|
||||
)
|
||||
SELECT bucket_start, listen_count FROM bucketed_listens
|
||||
SELECT
|
||||
(listened_at AT TIME ZONE $1::text)::date as day,
|
||||
COUNT(*) AS listen_count
|
||||
FROM listens l
|
||||
JOIN tracks t ON l.track_id = t.id
|
||||
JOIN artist_tracks at ON t.id = at.track_id
|
||||
WHERE l.listened_at >= $2
|
||||
AND l.listened_at < $3
|
||||
AND at.artist_id = $4
|
||||
GROUP BY day
|
||||
ORDER BY day
|
||||
`
|
||||
|
||||
type ListenActivityForArtistParams struct {
|
||||
Column1 time.Time
|
||||
Column2 time.Time
|
||||
Column3 pgtype.Interval
|
||||
ArtistID int32
|
||||
Column1 string
|
||||
ListenedAt time.Time
|
||||
ListenedAt_2 time.Time
|
||||
ArtistID int32
|
||||
}
|
||||
|
||||
type ListenActivityForArtistRow struct {
|
||||
BucketStart time.Time
|
||||
Day pgtype.Date
|
||||
ListenCount int64
|
||||
}
|
||||
|
||||
func (q *Queries) ListenActivityForArtist(ctx context.Context, arg ListenActivityForArtistParams) ([]ListenActivityForArtistRow, error) {
|
||||
rows, err := q.db.Query(ctx, listenActivityForArtist,
|
||||
arg.Column1,
|
||||
arg.Column2,
|
||||
arg.Column3,
|
||||
arg.ListenedAt,
|
||||
arg.ListenedAt_2,
|
||||
arg.ArtistID,
|
||||
)
|
||||
if err != nil {
|
||||
|
|
@ -800,7 +776,7 @@ func (q *Queries) ListenActivityForArtist(ctx context.Context, arg ListenActivit
|
|||
var items []ListenActivityForArtistRow
|
||||
for rows.Next() {
|
||||
var i ListenActivityForArtistRow
|
||||
if err := rows.Scan(&i.BucketStart, &i.ListenCount); err != nil {
|
||||
if err := rows.Scan(&i.Day, &i.ListenCount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
|
|
@ -812,46 +788,35 @@ func (q *Queries) ListenActivityForArtist(ctx context.Context, arg ListenActivit
|
|||
}
|
||||
|
||||
const listenActivityForRelease = `-- name: ListenActivityForRelease :many
|
||||
WITH buckets AS (
|
||||
SELECT generate_series($1::timestamptz, $2::timestamptz, $3::interval) AS bucket_start
|
||||
),
|
||||
filtered_listens AS (
|
||||
SELECT l.track_id, l.listened_at, l.client, l.user_id
|
||||
FROM listens l
|
||||
JOIN tracks t ON l.track_id = t.id
|
||||
WHERE t.release_id = $4
|
||||
),
|
||||
bucketed_listens AS (
|
||||
SELECT
|
||||
b.bucket_start,
|
||||
COUNT(l.listened_at) AS listen_count
|
||||
FROM buckets b
|
||||
LEFT JOIN filtered_listens l
|
||||
ON l.listened_at >= b.bucket_start
|
||||
AND l.listened_at < b.bucket_start + $3::interval
|
||||
GROUP BY b.bucket_start
|
||||
ORDER BY b.bucket_start
|
||||
)
|
||||
SELECT bucket_start, listen_count FROM bucketed_listens
|
||||
SELECT
|
||||
(listened_at AT TIME ZONE $1::text)::date as day,
|
||||
COUNT(*) AS listen_count
|
||||
FROM listens l
|
||||
JOIN tracks t ON l.track_id = t.id
|
||||
WHERE l.listened_at >= $2
|
||||
AND l.listened_at < $3
|
||||
AND t.release_id = $4
|
||||
GROUP BY day
|
||||
ORDER BY day
|
||||
`
|
||||
|
||||
type ListenActivityForReleaseParams struct {
|
||||
Column1 time.Time
|
||||
Column2 time.Time
|
||||
Column3 pgtype.Interval
|
||||
ReleaseID int32
|
||||
Column1 string
|
||||
ListenedAt time.Time
|
||||
ListenedAt_2 time.Time
|
||||
ReleaseID int32
|
||||
}
|
||||
|
||||
type ListenActivityForReleaseRow struct {
|
||||
BucketStart time.Time
|
||||
Day pgtype.Date
|
||||
ListenCount int64
|
||||
}
|
||||
|
||||
func (q *Queries) ListenActivityForRelease(ctx context.Context, arg ListenActivityForReleaseParams) ([]ListenActivityForReleaseRow, error) {
|
||||
rows, err := q.db.Query(ctx, listenActivityForRelease,
|
||||
arg.Column1,
|
||||
arg.Column2,
|
||||
arg.Column3,
|
||||
arg.ListenedAt,
|
||||
arg.ListenedAt_2,
|
||||
arg.ReleaseID,
|
||||
)
|
||||
if err != nil {
|
||||
|
|
@ -861,7 +826,7 @@ func (q *Queries) ListenActivityForRelease(ctx context.Context, arg ListenActivi
|
|||
var items []ListenActivityForReleaseRow
|
||||
for rows.Next() {
|
||||
var i ListenActivityForReleaseRow
|
||||
if err := rows.Scan(&i.BucketStart, &i.ListenCount); err != nil {
|
||||
if err := rows.Scan(&i.Day, &i.ListenCount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
|
|
@ -873,46 +838,35 @@ func (q *Queries) ListenActivityForRelease(ctx context.Context, arg ListenActivi
|
|||
}
|
||||
|
||||
const listenActivityForTrack = `-- name: ListenActivityForTrack :many
|
||||
WITH buckets AS (
|
||||
SELECT generate_series($1::timestamptz, $2::timestamptz, $3::interval) AS bucket_start
|
||||
),
|
||||
filtered_listens AS (
|
||||
SELECT l.track_id, l.listened_at, l.client, l.user_id
|
||||
FROM listens l
|
||||
JOIN tracks t ON l.track_id = t.id
|
||||
WHERE t.id = $4
|
||||
),
|
||||
bucketed_listens AS (
|
||||
SELECT
|
||||
b.bucket_start,
|
||||
COUNT(l.listened_at) AS listen_count
|
||||
FROM buckets b
|
||||
LEFT JOIN filtered_listens l
|
||||
ON l.listened_at >= b.bucket_start
|
||||
AND l.listened_at < b.bucket_start + $3::interval
|
||||
GROUP BY b.bucket_start
|
||||
ORDER BY b.bucket_start
|
||||
)
|
||||
SELECT bucket_start, listen_count FROM bucketed_listens
|
||||
SELECT
|
||||
(listened_at AT TIME ZONE $1::text)::date as day,
|
||||
COUNT(*) AS listen_count
|
||||
FROM listens l
|
||||
JOIN tracks t ON l.track_id = t.id
|
||||
WHERE l.listened_at >= $2
|
||||
AND l.listened_at < $3
|
||||
AND t.id = $4
|
||||
GROUP BY day
|
||||
ORDER BY day
|
||||
`
|
||||
|
||||
type ListenActivityForTrackParams struct {
|
||||
Column1 time.Time
|
||||
Column2 time.Time
|
||||
Column3 pgtype.Interval
|
||||
ID int32
|
||||
Column1 string
|
||||
ListenedAt time.Time
|
||||
ListenedAt_2 time.Time
|
||||
ID int32
|
||||
}
|
||||
|
||||
type ListenActivityForTrackRow struct {
|
||||
BucketStart time.Time
|
||||
Day pgtype.Date
|
||||
ListenCount int64
|
||||
}
|
||||
|
||||
func (q *Queries) ListenActivityForTrack(ctx context.Context, arg ListenActivityForTrackParams) ([]ListenActivityForTrackRow, error) {
|
||||
rows, err := q.db.Query(ctx, listenActivityForTrack,
|
||||
arg.Column1,
|
||||
arg.Column2,
|
||||
arg.Column3,
|
||||
arg.ListenedAt,
|
||||
arg.ListenedAt_2,
|
||||
arg.ID,
|
||||
)
|
||||
if err != nil {
|
||||
|
|
@ -922,7 +876,7 @@ func (q *Queries) ListenActivityForTrack(ctx context.Context, arg ListenActivity
|
|||
var items []ListenActivityForTrackRow
|
||||
for rows.Next() {
|
||||
var i ListenActivityForTrackRow
|
||||
if err := rows.Scan(&i.BucketStart, &i.ListenCount); err != nil {
|
||||
if err := rows.Scan(&i.Day, &i.ListenCount); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue