-- name: CreateDomain :one INSERT INTO domains (id, project_id, provider_account_id, zone_name, zone_id, template_id) VALUES ($1, $2, $3, $4, $5, $6) RETURNING *; -- name: ImportDomain :one INSERT INTO domains (id, project_id, provider_account_id, zone_name, zone_id, template_id) VALUES ($1, $2, $3, $4, $5, $6) ON CONFLICT (project_id, zone_id) DO NOTHING RETURNING *; -- name: UpdateDomainTemplate :one UPDATE domains SET template_id = $3 WHERE id = $1 AND project_id = $2 RETURNING *; -- name: GetDomain :one SELECT * FROM domains WHERE id = $1 AND project_id = $2; -- name: ListDomains :many SELECT * FROM domains WHERE project_id = $1 ORDER BY created_at; -- name: DeleteDomain :exec DELETE FROM domains WHERE id = $1 AND project_id = $2; -- name: LoadDomainFull :one SELECT d.zone_id, d.zone_name, a.provider, a.secret_enc, t.doc FROM domains d JOIN provider_accounts a ON a.id = d.provider_account_id LEFT JOIN templates t ON t.id = d.template_id WHERE d.id = $1 AND d.project_id = $2; -- name: GetDomainStatus :one SELECT last_check_status FROM domains WHERE id = $1; -- name: SetDomainStatus :exec UPDATE domains SET last_check_status = $2 WHERE id = $1; -- name: CountDriftDomains :one SELECT count(*) FROM domains WHERE last_check_status = 'drift';