files.sql.go

  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}