-- name: GetFileByID :one SELECT * FROM files WHERE id = $1 LIMIT 1; -- name: GetFileByHashAndCreator :one SELECT * FROM files WHERE hash = $1 AND created_by = $2 LIMIT 1; -- name: InsertFile :one INSERT INTO files (id, hash, created_at, created_by, mimetype, "data") VALUES ($1, $2, $3, $4, $5, $6) RETURNING *; -- name: GetFileTemplates :many -- Get all templates that use a file. SELECT files.id AS file_id, files.created_by AS file_created_by, templates.id AS template_id, templates.organization_id AS template_organization_id, templates.created_by AS template_created_by, templates.user_acl, templates.group_acl FROM templates INNER JOIN template_versions ON templates.id = template_versions.template_id INNER JOIN provisioner_jobs ON job_id = provisioner_jobs.id INNER JOIN files ON files.id = provisioner_jobs.file_id WHERE -- Only fetch template version associated files. storage_method = 'file' AND provisioner_jobs.type = 'template_version_import' AND file_id = @file_id ;