-- name: InsertTabloFile :one INSERT INTO tablo_files (tablo_id, s3_key, filename, content_type, size_bytes) VALUES ($1, $2, $3, $4, $5) RETURNING id, tablo_id, s3_key, filename, content_type, size_bytes, created_at; -- name: ListFilesByTablo :many SELECT id, tablo_id, s3_key, filename, content_type, size_bytes, created_at FROM tablo_files WHERE tablo_id = $1 ORDER BY created_at DESC; -- name: GetTabloFileByID :one SELECT id, tablo_id, s3_key, filename, content_type, size_bytes, created_at FROM tablo_files WHERE id = $1 AND tablo_id = $2; -- name: DeleteTabloFile :exec DELETE FROM tablo_files WHERE id = $1 AND tablo_id = $2; -- Find tablo_files rows whose owning tablo no longer exists. -- Used by the orphan-file cleanup worker (Phase 6 WORK-02). -- name: ListOrphanFiles :many SELECT id, tablo_id, s3_key FROM tablo_files tf WHERE NOT EXISTS ( SELECT 1 FROM tablos t WHERE t.id = tf.tablo_id );