128 lines
3.2 KiB
Go
128 lines
3.2 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.30.0
|
|
// source: domains.sql
|
|
|
|
package db
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
)
|
|
|
|
const createDomain = `-- name: CreateDomain :exec
|
|
INSERT INTO virtual_domains (name) VALUES (?)
|
|
`
|
|
|
|
func (q *Queries) CreateDomain(ctx context.Context, name string) error {
|
|
_, err := q.db.ExecContext(ctx, createDomain, name)
|
|
return err
|
|
}
|
|
|
|
const deleteDomain = `-- name: DeleteDomain :exec
|
|
DELETE FROM virtual_domains WHERE id = ?
|
|
`
|
|
|
|
func (q *Queries) DeleteDomain(ctx context.Context, id uint32) error {
|
|
_, err := q.db.ExecContext(ctx, deleteDomain, id)
|
|
return err
|
|
}
|
|
|
|
const getAllDomains = `-- name: GetAllDomains :many
|
|
SELECT id, name, created_at FROM virtual_domains ORDER BY name ASC
|
|
`
|
|
|
|
func (q *Queries) GetAllDomains(ctx context.Context) ([]VirtualDomain, error) {
|
|
rows, err := q.db.QueryContext(ctx, getAllDomains)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []VirtualDomain
|
|
for rows.Next() {
|
|
var i VirtualDomain
|
|
if err := rows.Scan(&i.ID, &i.Name, &i.CreatedAt); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const getAllDomainsWithCounts = `-- name: GetAllDomainsWithCounts :many
|
|
SELECT
|
|
d.id,
|
|
d.name,
|
|
d.created_at,
|
|
COALESCE(u.user_count, 0) as user_count,
|
|
COALESCE(a.alias_count, 0) as alias_count
|
|
FROM virtual_domains d
|
|
LEFT JOIN (SELECT domain_id, COUNT(*) as user_count FROM virtual_users GROUP BY domain_id) u ON u.domain_id = d.id
|
|
LEFT JOIN (SELECT domain_id, COUNT(*) as alias_count FROM virtual_aliases GROUP BY domain_id) a ON a.domain_id = d.id
|
|
ORDER BY d.name ASC
|
|
`
|
|
|
|
type GetAllDomainsWithCountsRow struct {
|
|
ID uint32 `json:"id"`
|
|
Name string `json:"name"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UserCount int64 `json:"user_count"`
|
|
AliasCount int64 `json:"alias_count"`
|
|
}
|
|
|
|
func (q *Queries) GetAllDomainsWithCounts(ctx context.Context) ([]GetAllDomainsWithCountsRow, error) {
|
|
rows, err := q.db.QueryContext(ctx, getAllDomainsWithCounts)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []GetAllDomainsWithCountsRow
|
|
for rows.Next() {
|
|
var i GetAllDomainsWithCountsRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.CreatedAt,
|
|
&i.UserCount,
|
|
&i.AliasCount,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const getDomainByID = `-- name: GetDomainByID :one
|
|
SELECT id, name, created_at FROM virtual_domains WHERE id = ?
|
|
`
|
|
|
|
func (q *Queries) GetDomainByID(ctx context.Context, id uint32) (VirtualDomain, error) {
|
|
row := q.db.QueryRowContext(ctx, getDomainByID, id)
|
|
var i VirtualDomain
|
|
err := row.Scan(&i.ID, &i.Name, &i.CreatedAt)
|
|
return i, err
|
|
}
|
|
|
|
const getDomainByName = `-- name: GetDomainByName :one
|
|
SELECT id, name, created_at FROM virtual_domains WHERE name = ?
|
|
`
|
|
|
|
func (q *Queries) GetDomainByName(ctx context.Context, name string) (VirtualDomain, error) {
|
|
row := q.db.QueryRowContext(ctx, getDomainByName, name)
|
|
var i VirtualDomain
|
|
err := row.Scan(&i.ID, &i.Name, &i.CreatedAt)
|
|
return i, err
|
|
}
|