files.sql.go 6.5 KB

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