files.sql.go 6.6 KB

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