98 lines
2.3 KiB
Go
98 lines
2.3 KiB
Go
|
// 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
|
||
|
}
|