-- name: ListServiceTemplates :many SELECT id, name, description, category, logo, config, variables, is_official, created_at, updated_at FROM service_templates ORDER BY is_official DESC, name ASC; -- name: ListServiceTemplatesByCategory :many SELECT id, name, description, category, logo, config, variables, is_official, created_at, updated_at FROM service_templates WHERE category = $1 ORDER BY is_official DESC, name ASC; -- name: GetServiceTemplateByID :one SELECT id, name, description, category, logo, config, variables, is_official, created_at, updated_at FROM service_templates WHERE id = $1; -- name: GetProjectOwnerID :one SELECT owner_id FROM projects WHERE id = $1; -- name: CountServicesByProjectAndName :one SELECT COUNT(*) FROM services WHERE project_id = $1 AND name = $2; -- name: CreateServiceFromTemplate :exec INSERT INTO services ( id, project_id, name, environment_id, service_type, source_type, source_url, image_name, build_command, start_command, type, status, image, command, environment, cpu, memory, created_at, updated_at ) VALUES ( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19 ); -- name: UpsertEnvironmentVariable :exec INSERT INTO environment_variables (id, service_id, key, value, is_secret, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6, $7) ON CONFLICT (service_id, key) DO UPDATE SET value = EXCLUDED.value, is_secret = EXCLUDED.is_secret, updated_at = EXCLUDED.updated_at;