// 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 }