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