diff options
| author | Kujtim Hoxha <[email protected]> | 2025-04-13 11:29:20 +0200 |
|---|---|---|
| committer | Kujtim Hoxha <[email protected]> | 2025-04-21 13:38:42 +0200 |
| commit | d63d0c4c44cb2356645fd112cec01598301f5949 (patch) | |
| tree | a3a863a1c08ebb34885c1e38cfa76f9515cf7e54 /internal/db/sql/files.sql | |
| parent | bd2ec29b65e430f83f430db5fdc424c7d631989d (diff) | |
| download | opencode-d63d0c4c44cb2356645fd112cec01598301f5949.tar.gz opencode-d63d0c4c44cb2356645fd112cec01598301f5949.zip | |
wip files
Diffstat (limited to 'internal/db/sql/files.sql')
| -rw-r--r-- | internal/db/sql/files.sql | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/internal/db/sql/files.sql b/internal/db/sql/files.sql new file mode 100644 index 000000000..c2e799076 --- /dev/null +++ b/internal/db/sql/files.sql @@ -0,0 +1,69 @@ +-- name: GetFile :one +SELECT * +FROM files +WHERE id = ? LIMIT 1; + +-- name: GetFileByPathAndSession :one +SELECT * +FROM files +WHERE path = ? AND session_id = ? LIMIT 1; + +-- name: ListFilesBySession :many +SELECT * +FROM files +WHERE session_id = ? +ORDER BY created_at ASC; + +-- name: ListFilesByPath :many +SELECT * +FROM files +WHERE path = ? +ORDER BY created_at DESC; + +-- name: CreateFile :one +INSERT INTO files ( + id, + session_id, + path, + content, + version, + created_at, + updated_at +) VALUES ( + ?, ?, ?, ?, ?, strftime('%s', 'now'), strftime('%s', 'now') +) +RETURNING *; + +-- name: UpdateFile :one +UPDATE files +SET + content = ?, + version = ?, + updated_at = strftime('%s', 'now') +WHERE id = ? +RETURNING *; + +-- name: DeleteFile :exec +DELETE FROM files +WHERE id = ?; + +-- name: DeleteSessionFiles :exec +DELETE FROM files +WHERE session_id = ?; + +-- name: ListLatestSessionFiles :many +SELECT f.* +FROM files f +INNER JOIN ( + SELECT path, MAX(created_at) as max_created_at + FROM files + GROUP BY path +) latest ON f.path = latest.path AND f.created_at = latest.max_created_at +WHERE f.session_id = ? +ORDER BY f.path; + +-- name: ListNewFiles :many +SELECT * +FROM files +WHERE is_new = 1 +ORDER BY created_at DESC; |
