1// Code generated by sqlc. DO NOT EDIT.
2// versions:
3// sqlc v1.27.0
4// source: files.sql
5
6package db
7
8import (
9 "context"
10)
11
12const createFile = `-- name: CreateFile :one
13INSERT INTO files (
14 id,
15 session_id,
16 path,
17 content,
18 version,
19 created_at,
20 updated_at
21) VALUES (
22 ?, ?, ?, ?, ?, strftime('%s', 'now'), strftime('%s', 'now')
23)
24RETURNING id, session_id, path, content, version, created_at, updated_at
25`
26
27type CreateFileParams struct {
28 ID string `json:"id"`
29 SessionID string `json:"session_id"`
30 Path string `json:"path"`
31 Content string `json:"content"`
32 Version string `json:"version"`
33}
34
35func (q *Queries) CreateFile(ctx context.Context, arg CreateFileParams) (File, error) {
36 row := q.queryRow(ctx, q.createFileStmt, createFile,
37 arg.ID,
38 arg.SessionID,
39 arg.Path,
40 arg.Content,
41 arg.Version,
42 )
43 var i File
44 err := row.Scan(
45 &i.ID,
46 &i.SessionID,
47 &i.Path,
48 &i.Content,
49 &i.Version,
50 &i.CreatedAt,
51 &i.UpdatedAt,
52 )
53 return i, err
54}
55
56const deleteFile = `-- name: DeleteFile :exec
57DELETE FROM files
58WHERE id = ?
59`
60
61func (q *Queries) DeleteFile(ctx context.Context, id string) error {
62 _, err := q.exec(ctx, q.deleteFileStmt, deleteFile, id)
63 return err
64}
65
66const deleteSessionFiles = `-- name: DeleteSessionFiles :exec
67DELETE FROM files
68WHERE session_id = ?
69`
70
71func (q *Queries) DeleteSessionFiles(ctx context.Context, sessionID string) error {
72 _, err := q.exec(ctx, q.deleteSessionFilesStmt, deleteSessionFiles, sessionID)
73 return err
74}
75
76const getFile = `-- name: GetFile :one
77SELECT id, session_id, path, content, version, created_at, updated_at
78FROM files
79WHERE id = ? LIMIT 1
80`
81
82func (q *Queries) GetFile(ctx context.Context, id string) (File, error) {
83 row := q.queryRow(ctx, q.getFileStmt, getFile, id)
84 var i File
85 err := row.Scan(
86 &i.ID,
87 &i.SessionID,
88 &i.Path,
89 &i.Content,
90 &i.Version,
91 &i.CreatedAt,
92 &i.UpdatedAt,
93 )
94 return i, err
95}
96
97const getFileByPathAndSession = `-- name: GetFileByPathAndSession :one
98SELECT id, session_id, path, content, version, created_at, updated_at
99FROM files
100WHERE path = ? AND session_id = ? LIMIT 1
101`
102
103type GetFileByPathAndSessionParams struct {
104 Path string `json:"path"`
105 SessionID string `json:"session_id"`
106}
107
108func (q *Queries) GetFileByPathAndSession(ctx context.Context, arg GetFileByPathAndSessionParams) (File, error) {
109 row := q.queryRow(ctx, q.getFileByPathAndSessionStmt, getFileByPathAndSession, arg.Path, arg.SessionID)
110 var i File
111 err := row.Scan(
112 &i.ID,
113 &i.SessionID,
114 &i.Path,
115 &i.Content,
116 &i.Version,
117 &i.CreatedAt,
118 &i.UpdatedAt,
119 )
120 return i, err
121}
122
123const listFilesByPath = `-- name: ListFilesByPath :many
124SELECT id, session_id, path, content, version, created_at, updated_at
125FROM files
126WHERE path = ?
127ORDER BY created_at DESC
128`
129
130func (q *Queries) ListFilesByPath(ctx context.Context, path string) ([]File, error) {
131 rows, err := q.query(ctx, q.listFilesByPathStmt, listFilesByPath, path)
132 if err != nil {
133 return nil, err
134 }
135 defer rows.Close()
136 items := []File{}
137 for rows.Next() {
138 var i File
139 if err := rows.Scan(
140 &i.ID,
141 &i.SessionID,
142 &i.Path,
143 &i.Content,
144 &i.Version,
145 &i.CreatedAt,
146 &i.UpdatedAt,
147 ); err != nil {
148 return nil, err
149 }
150 items = append(items, i)
151 }
152 if err := rows.Close(); err != nil {
153 return nil, err
154 }
155 if err := rows.Err(); err != nil {
156 return nil, err
157 }
158 return items, nil
159}
160
161const listFilesBySession = `-- name: ListFilesBySession :many
162SELECT id, session_id, path, content, version, created_at, updated_at
163FROM files
164WHERE session_id = ?
165ORDER BY created_at ASC
166`
167
168func (q *Queries) ListFilesBySession(ctx context.Context, sessionID string) ([]File, error) {
169 rows, err := q.query(ctx, q.listFilesBySessionStmt, listFilesBySession, sessionID)
170 if err != nil {
171 return nil, err
172 }
173 defer rows.Close()
174 items := []File{}
175 for rows.Next() {
176 var i File
177 if err := rows.Scan(
178 &i.ID,
179 &i.SessionID,
180 &i.Path,
181 &i.Content,
182 &i.Version,
183 &i.CreatedAt,
184 &i.UpdatedAt,
185 ); err != nil {
186 return nil, err
187 }
188 items = append(items, i)
189 }
190 if err := rows.Close(); err != nil {
191 return nil, err
192 }
193 if err := rows.Err(); err != nil {
194 return nil, err
195 }
196 return items, nil
197}
198
199const listLatestSessionFiles = `-- name: ListLatestSessionFiles :many
200SELECT f.id, f.session_id, f.path, f.content, f.version, f.created_at, f.updated_at
201FROM files f
202INNER JOIN (
203 SELECT path, MAX(created_at) as max_created_at
204 FROM files
205 GROUP BY path
206) latest ON f.path = latest.path AND f.created_at = latest.max_created_at
207WHERE f.session_id = ?
208ORDER BY f.path
209`
210
211func (q *Queries) ListLatestSessionFiles(ctx context.Context, sessionID string) ([]File, error) {
212 rows, err := q.query(ctx, q.listLatestSessionFilesStmt, listLatestSessionFiles, sessionID)
213 if err != nil {
214 return nil, err
215 }
216 defer rows.Close()
217 items := []File{}
218 for rows.Next() {
219 var i File
220 if err := rows.Scan(
221 &i.ID,
222 &i.SessionID,
223 &i.Path,
224 &i.Content,
225 &i.Version,
226 &i.CreatedAt,
227 &i.UpdatedAt,
228 ); err != nil {
229 return nil, err
230 }
231 items = append(items, i)
232 }
233 if err := rows.Close(); err != nil {
234 return nil, err
235 }
236 if err := rows.Err(); err != nil {
237 return nil, err
238 }
239 return items, nil
240}
241
242const listNewFiles = `-- name: ListNewFiles :many
243SELECT id, session_id, path, content, version, created_at, updated_at
244FROM files
245WHERE is_new = 1
246ORDER BY created_at DESC
247`
248
249func (q *Queries) ListNewFiles(ctx context.Context) ([]File, error) {
250 rows, err := q.query(ctx, q.listNewFilesStmt, listNewFiles)
251 if err != nil {
252 return nil, err
253 }
254 defer rows.Close()
255 items := []File{}
256 for rows.Next() {
257 var i File
258 if err := rows.Scan(
259 &i.ID,
260 &i.SessionID,
261 &i.Path,
262 &i.Content,
263 &i.Version,
264 &i.CreatedAt,
265 &i.UpdatedAt,
266 ); err != nil {
267 return nil, err
268 }
269 items = append(items, i)
270 }
271 if err := rows.Close(); err != nil {
272 return nil, err
273 }
274 if err := rows.Err(); err != nil {
275 return nil, err
276 }
277 return items, nil
278}
279
280const updateFile = `-- name: UpdateFile :one
281UPDATE files
282SET
283 content = ?,
284 version = ?,
285 updated_at = strftime('%s', 'now')
286WHERE id = ?
287RETURNING id, session_id, path, content, version, created_at, updated_at
288`
289
290type UpdateFileParams struct {
291 Content string `json:"content"`
292 Version string `json:"version"`
293 ID string `json:"id"`
294}
295
296func (q *Queries) UpdateFile(ctx context.Context, arg UpdateFileParams) (File, error) {
297 row := q.queryRow(ctx, q.updateFileStmt, updateFile, arg.Content, arg.Version, arg.ID)
298 var i File
299 err := row.Scan(
300 &i.ID,
301 &i.SessionID,
302 &i.Path,
303 &i.Content,
304 &i.Version,
305 &i.CreatedAt,
306 &i.UpdatedAt,
307 )
308 return i, err
309}