sessions.sql.go 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. // Code generated by sqlc. DO NOT EDIT.
  2. // versions:
  3. // sqlc v1.30.0
  4. // source: sessions.sql
  5. package db
  6. import (
  7. "context"
  8. "database/sql"
  9. )
  10. const createSession = `-- name: CreateSession :one
  11. INSERT INTO sessions (
  12. id,
  13. parent_session_id,
  14. title,
  15. message_count,
  16. prompt_tokens,
  17. completion_tokens,
  18. cost,
  19. summary_message_id,
  20. updated_at,
  21. created_at
  22. ) VALUES (
  23. ?,
  24. ?,
  25. ?,
  26. ?,
  27. ?,
  28. ?,
  29. ?,
  30. null,
  31. strftime('%s', 'now'),
  32. strftime('%s', 'now')
  33. ) RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
  34. `
  35. type CreateSessionParams struct {
  36. ID string `json:"id"`
  37. ParentSessionID sql.NullString `json:"parent_session_id"`
  38. Title string `json:"title"`
  39. MessageCount int64 `json:"message_count"`
  40. PromptTokens int64 `json:"prompt_tokens"`
  41. CompletionTokens int64 `json:"completion_tokens"`
  42. Cost float64 `json:"cost"`
  43. }
  44. func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error) {
  45. row := q.queryRow(ctx, q.createSessionStmt, createSession,
  46. arg.ID,
  47. arg.ParentSessionID,
  48. arg.Title,
  49. arg.MessageCount,
  50. arg.PromptTokens,
  51. arg.CompletionTokens,
  52. arg.Cost,
  53. )
  54. var i Session
  55. err := row.Scan(
  56. &i.ID,
  57. &i.ParentSessionID,
  58. &i.Title,
  59. &i.MessageCount,
  60. &i.PromptTokens,
  61. &i.CompletionTokens,
  62. &i.Cost,
  63. &i.UpdatedAt,
  64. &i.CreatedAt,
  65. &i.SummaryMessageID,
  66. &i.Todos,
  67. &i.Models,
  68. )
  69. return i, err
  70. }
  71. const deleteSession = `-- name: DeleteSession :exec
  72. DELETE FROM sessions
  73. WHERE id = ?
  74. `
  75. func (q *Queries) DeleteSession(ctx context.Context, id string) error {
  76. _, err := q.exec(ctx, q.deleteSessionStmt, deleteSession, id)
  77. return err
  78. }
  79. const getLastSession = `-- name: GetLastSession :one
  80. SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
  81. FROM sessions
  82. ORDER BY updated_at DESC
  83. LIMIT 1
  84. `
  85. func (q *Queries) GetLastSession(ctx context.Context) (Session, error) {
  86. row := q.queryRow(ctx, q.getLastSessionStmt, getLastSession)
  87. var i Session
  88. err := row.Scan(
  89. &i.ID,
  90. &i.ParentSessionID,
  91. &i.Title,
  92. &i.MessageCount,
  93. &i.PromptTokens,
  94. &i.CompletionTokens,
  95. &i.Cost,
  96. &i.UpdatedAt,
  97. &i.CreatedAt,
  98. &i.SummaryMessageID,
  99. &i.Todos,
  100. &i.Models,
  101. )
  102. return i, err
  103. }
  104. const getSessionByID = `-- name: GetSessionByID :one
  105. SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
  106. FROM sessions
  107. WHERE id = ? LIMIT 1
  108. `
  109. func (q *Queries) GetSessionByID(ctx context.Context, id string) (Session, error) {
  110. row := q.queryRow(ctx, q.getSessionByIDStmt, getSessionByID, id)
  111. var i Session
  112. err := row.Scan(
  113. &i.ID,
  114. &i.ParentSessionID,
  115. &i.Title,
  116. &i.MessageCount,
  117. &i.PromptTokens,
  118. &i.CompletionTokens,
  119. &i.Cost,
  120. &i.UpdatedAt,
  121. &i.CreatedAt,
  122. &i.SummaryMessageID,
  123. &i.Todos,
  124. &i.Models,
  125. )
  126. return i, err
  127. }
  128. const listSessions = `-- name: ListSessions :many
  129. SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
  130. FROM sessions
  131. WHERE parent_session_id is NULL
  132. ORDER BY updated_at DESC
  133. `
  134. func (q *Queries) ListSessions(ctx context.Context) ([]Session, error) {
  135. rows, err := q.query(ctx, q.listSessionsStmt, listSessions)
  136. if err != nil {
  137. return nil, err
  138. }
  139. defer rows.Close()
  140. items := []Session{}
  141. for rows.Next() {
  142. var i Session
  143. if err := rows.Scan(
  144. &i.ID,
  145. &i.ParentSessionID,
  146. &i.Title,
  147. &i.MessageCount,
  148. &i.PromptTokens,
  149. &i.CompletionTokens,
  150. &i.Cost,
  151. &i.UpdatedAt,
  152. &i.CreatedAt,
  153. &i.SummaryMessageID,
  154. &i.Todos,
  155. &i.Models,
  156. ); err != nil {
  157. return nil, err
  158. }
  159. items = append(items, i)
  160. }
  161. if err := rows.Close(); err != nil {
  162. return nil, err
  163. }
  164. if err := rows.Err(); err != nil {
  165. return nil, err
  166. }
  167. return items, nil
  168. }
  169. const renameSession = `-- name: RenameSession :exec
  170. UPDATE sessions
  171. SET
  172. title = ?
  173. WHERE id = ?
  174. `
  175. type RenameSessionParams struct {
  176. Title string `json:"title"`
  177. ID string `json:"id"`
  178. }
  179. func (q *Queries) RenameSession(ctx context.Context, arg RenameSessionParams) error {
  180. _, err := q.exec(ctx, q.renameSessionStmt, renameSession, arg.Title, arg.ID)
  181. return err
  182. }
  183. const updateSession = `-- name: UpdateSession :one
  184. UPDATE sessions
  185. SET
  186. title = ?,
  187. prompt_tokens = ?,
  188. completion_tokens = ?,
  189. summary_message_id = ?,
  190. cost = ?,
  191. todos = ?
  192. WHERE id = ?
  193. RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
  194. `
  195. type UpdateSessionParams struct {
  196. Title string `json:"title"`
  197. PromptTokens int64 `json:"prompt_tokens"`
  198. CompletionTokens int64 `json:"completion_tokens"`
  199. SummaryMessageID sql.NullString `json:"summary_message_id"`
  200. Cost float64 `json:"cost"`
  201. Todos sql.NullString `json:"todos"`
  202. ID string `json:"id"`
  203. }
  204. func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (Session, error) {
  205. row := q.queryRow(ctx, q.updateSessionStmt, updateSession,
  206. arg.Title,
  207. arg.PromptTokens,
  208. arg.CompletionTokens,
  209. arg.SummaryMessageID,
  210. arg.Cost,
  211. arg.Todos,
  212. arg.ID,
  213. )
  214. var i Session
  215. err := row.Scan(
  216. &i.ID,
  217. &i.ParentSessionID,
  218. &i.Title,
  219. &i.MessageCount,
  220. &i.PromptTokens,
  221. &i.CompletionTokens,
  222. &i.Cost,
  223. &i.UpdatedAt,
  224. &i.CreatedAt,
  225. &i.SummaryMessageID,
  226. &i.Todos,
  227. &i.Models,
  228. )
  229. return i, err
  230. }
  231. const updateSessionModels = `-- name: UpdateSessionModels :one
  232. UPDATE sessions
  233. SET models = ?
  234. WHERE id = ?
  235. RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
  236. `
  237. type UpdateSessionModelsParams struct {
  238. Models sql.NullString `json:"models"`
  239. ID string `json:"id"`
  240. }
  241. func (q *Queries) UpdateSessionModels(ctx context.Context, arg UpdateSessionModelsParams) (Session, error) {
  242. row := q.queryRow(ctx, q.updateSessionModelsStmt, updateSessionModels, arg.Models, arg.ID)
  243. var i Session
  244. err := row.Scan(
  245. &i.ID,
  246. &i.ParentSessionID,
  247. &i.Title,
  248. &i.MessageCount,
  249. &i.PromptTokens,
  250. &i.CompletionTokens,
  251. &i.Cost,
  252. &i.UpdatedAt,
  253. &i.CreatedAt,
  254. &i.SummaryMessageID,
  255. &i.Todos,
  256. &i.Models,
  257. )
  258. return i, err
  259. }
  260. const updateSessionTitleAndUsage = `-- name: UpdateSessionTitleAndUsage :exec
  261. UPDATE sessions
  262. SET
  263. title = ?,
  264. prompt_tokens = prompt_tokens + ?,
  265. completion_tokens = completion_tokens + ?,
  266. cost = cost + ?,
  267. updated_at = strftime('%s', 'now')
  268. WHERE id = ?
  269. `
  270. type UpdateSessionTitleAndUsageParams struct {
  271. Title string `json:"title"`
  272. PromptTokens int64 `json:"prompt_tokens"`
  273. CompletionTokens int64 `json:"completion_tokens"`
  274. Cost float64 `json:"cost"`
  275. ID string `json:"id"`
  276. }
  277. func (q *Queries) UpdateSessionTitleAndUsage(ctx context.Context, arg UpdateSessionTitleAndUsageParams) error {
  278. _, err := q.exec(ctx, q.updateSessionTitleAndUsageStmt, updateSessionTitleAndUsage,
  279. arg.Title,
  280. arg.PromptTokens,
  281. arg.CompletionTokens,
  282. arg.Cost,
  283. arg.ID,
  284. )
  285. return err
  286. }