stillbox/pkg/database/stats.sql.go

98 lines
2.3 KiB
Go
Raw Normal View History

2025-02-14 12:50:05 -05:00
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: stats.sql
package database
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const getCallStatsByInterval = `-- name: GetCallStatsByInterval :many
SELECT
COUNT(*),
date_trunc($1, c.call_date)::TIMESTAMPTZ date
FROM calls c
WHERE
CASE WHEN $2::TIMESTAMPTZ IS NOT NULL THEN
c.call_date >= $2 ELSE TRUE END AND
CASE WHEN $3::TIMESTAMPTZ IS NOT NULL THEN
c.call_date <= $3 ELSE TRUE END
GROUP BY 2
`
type GetCallStatsByIntervalRow struct {
Count int64 `json:"count"`
Date pgtype.Timestamptz `json:"date"`
}
func (q *Queries) GetCallStatsByInterval(ctx context.Context, truncField string, start pgtype.Timestamptz, end pgtype.Timestamptz) ([]GetCallStatsByIntervalRow, error) {
rows, err := q.db.Query(ctx, getCallStatsByInterval, truncField, start, end)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GetCallStatsByIntervalRow
for rows.Next() {
var i GetCallStatsByIntervalRow
if err := rows.Scan(&i.Count, &i.Date); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getCallStatsByTalkgroup = `-- name: GetCallStatsByTalkgroup :many
SELECT
COUNT(*),
c.system,
c.talkgroup,
date_trunc($1, c.call_date)
FROM calls c
WHERE
CASE WHEN $2::TIMESTAMPTZ IS NOT NULL THEN
c.call_date >= $2 ELSE TRUE END AND
CASE WHEN $3::TIMESTAMPTZ IS NOT NULL THEN
c.call_date <= $3 ELSE TRUE END
GROUP BY 2, 3, 4
`
type GetCallStatsByTalkgroupRow struct {
Count int64 `json:"count"`
System int `json:"system"`
Talkgroup int `json:"talkgroup"`
DateTrunc pgtype.Interval `json:"dateTrunc"`
}
func (q *Queries) GetCallStatsByTalkgroup(ctx context.Context, truncField string, start pgtype.Timestamptz, end pgtype.Timestamptz) ([]GetCallStatsByTalkgroupRow, error) {
rows, err := q.db.Query(ctx, getCallStatsByTalkgroup, truncField, start, end)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GetCallStatsByTalkgroupRow
for rows.Next() {
var i GetCallStatsByTalkgroupRow
if err := rows.Scan(
&i.Count,
&i.System,
&i.Talkgroup,
&i.DateTrunc,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}