files.sql.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  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. 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 int64 `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 = ?
  89. ORDER BY version DESC, 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.CreatedAt,
  106. &i.UpdatedAt,
  107. )
  108. return i, err
  109. }
  110. const listFilesByPath = `-- name: ListFilesByPath :many
  111. SELECT id, session_id, path, content, version, created_at, updated_at
  112. FROM files
  113. WHERE path = ?
  114. ORDER BY version DESC, created_at DESC
  115. `
  116. func (q *Queries) ListFilesByPath(ctx context.Context, path string) ([]File, error) {
  117. rows, err := q.query(ctx, q.listFilesByPathStmt, listFilesByPath, path)
  118. if err != nil {
  119. return nil, err
  120. }
  121. defer rows.Close()
  122. items := []File{}
  123. for rows.Next() {
  124. var i File
  125. if err := rows.Scan(
  126. &i.ID,
  127. &i.SessionID,
  128. &i.Path,
  129. &i.Content,
  130. &i.Version,
  131. &i.CreatedAt,
  132. &i.UpdatedAt,
  133. ); err != nil {
  134. return nil, err
  135. }
  136. items = append(items, i)
  137. }
  138. if err := rows.Close(); err != nil {
  139. return nil, err
  140. }
  141. if err := rows.Err(); err != nil {
  142. return nil, err
  143. }
  144. return items, nil
  145. }
  146. const listFilesBySession = `-- name: ListFilesBySession :many
  147. SELECT id, session_id, path, content, version, created_at, updated_at
  148. FROM files
  149. WHERE session_id = ?
  150. ORDER BY version ASC, created_at ASC
  151. `
  152. func (q *Queries) ListFilesBySession(ctx context.Context, sessionID string) ([]File, error) {
  153. rows, err := q.query(ctx, q.listFilesBySessionStmt, listFilesBySession, sessionID)
  154. if err != nil {
  155. return nil, err
  156. }
  157. defer rows.Close()
  158. items := []File{}
  159. for rows.Next() {
  160. var i File
  161. if err := rows.Scan(
  162. &i.ID,
  163. &i.SessionID,
  164. &i.Path,
  165. &i.Content,
  166. &i.Version,
  167. &i.CreatedAt,
  168. &i.UpdatedAt,
  169. ); err != nil {
  170. return nil, err
  171. }
  172. items = append(items, i)
  173. }
  174. if err := rows.Close(); err != nil {
  175. return nil, err
  176. }
  177. if err := rows.Err(); err != nil {
  178. return nil, err
  179. }
  180. return items, nil
  181. }
  182. const listLatestSessionFiles = `-- name: ListLatestSessionFiles :many
  183. SELECT f.id, f.session_id, f.path, f.content, f.version, f.created_at, f.updated_at
  184. FROM files f
  185. INNER JOIN (
  186. SELECT path, MAX(version) as max_version, MAX(created_at) as max_created_at
  187. FROM files
  188. GROUP BY path
  189. ) latest ON f.path = latest.path AND f.version = latest.max_version AND f.created_at = latest.max_created_at
  190. WHERE f.session_id = ?
  191. ORDER BY f.path
  192. `
  193. func (q *Queries) ListLatestSessionFiles(ctx context.Context, sessionID string) ([]File, error) {
  194. rows, err := q.query(ctx, q.listLatestSessionFilesStmt, listLatestSessionFiles, sessionID)
  195. if err != nil {
  196. return nil, err
  197. }
  198. defer rows.Close()
  199. items := []File{}
  200. for rows.Next() {
  201. var i File
  202. if err := rows.Scan(
  203. &i.ID,
  204. &i.SessionID,
  205. &i.Path,
  206. &i.Content,
  207. &i.Version,
  208. &i.CreatedAt,
  209. &i.UpdatedAt,
  210. ); err != nil {
  211. return nil, err
  212. }
  213. items = append(items, i)
  214. }
  215. if err := rows.Close(); err != nil {
  216. return nil, err
  217. }
  218. if err := rows.Err(); err != nil {
  219. return nil, err
  220. }
  221. return items, nil
  222. }
  223. const listNewFiles = `-- name: ListNewFiles :many
  224. SELECT id, session_id, path, content, version, created_at, updated_at
  225. FROM files
  226. WHERE is_new = 1
  227. ORDER BY version DESC, created_at DESC
  228. `
  229. func (q *Queries) ListNewFiles(ctx context.Context) ([]File, error) {
  230. rows, err := q.query(ctx, q.listNewFilesStmt, listNewFiles)
  231. if err != nil {
  232. return nil, err
  233. }
  234. defer rows.Close()
  235. items := []File{}
  236. for rows.Next() {
  237. var i File
  238. if err := rows.Scan(
  239. &i.ID,
  240. &i.SessionID,
  241. &i.Path,
  242. &i.Content,
  243. &i.Version,
  244. &i.CreatedAt,
  245. &i.UpdatedAt,
  246. ); err != nil {
  247. return nil, err
  248. }
  249. items = append(items, i)
  250. }
  251. if err := rows.Close(); err != nil {
  252. return nil, err
  253. }
  254. if err := rows.Err(); err != nil {
  255. return nil, err
  256. }
  257. return items, nil
  258. }