imc-vibe/backend/internal/db/sqlc/domains.sql.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
}