sessions.sql.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  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
  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. )
  68. return i, err
  69. }
  70. const deleteSession = `-- name: DeleteSession :exec
  71. DELETE FROM sessions
  72. WHERE id = ?
  73. `
  74. func (q *Queries) DeleteSession(ctx context.Context, id string) error {
  75. _, err := q.exec(ctx, q.deleteSessionStmt, deleteSession, id)
  76. return err
  77. }
  78. const getLastSession = `-- name: GetLastSession :one
  79. SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
  80. FROM sessions
  81. ORDER BY updated_at DESC
  82. LIMIT 1
  83. `
  84. func (q *Queries) GetLastSession(ctx context.Context) (Session, error) {
  85. row := q.queryRow(ctx, q.getLastSessionStmt, getLastSession)
  86. var i Session
  87. err := row.Scan(
  88. &i.ID,
  89. &i.ParentSessionID,
  90. &i.Title,
  91. &i.MessageCount,
  92. &i.PromptTokens,
  93. &i.CompletionTokens,
  94. &i.Cost,
  95. &i.UpdatedAt,
  96. &i.CreatedAt,
  97. &i.SummaryMessageID,
  98. &i.Todos,
  99. )
  100. return i, err
  101. }
  102. const getSessionByID = `-- name: GetSessionByID :one
  103. SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
  104. FROM sessions
  105. WHERE id = ? LIMIT 1
  106. `
  107. func (q *Queries) GetSessionByID(ctx context.Context, id string) (Session, error) {
  108. row := q.queryRow(ctx, q.getSessionByIDStmt, getSessionByID, id)
  109. var i Session
  110. err := row.Scan(
  111. &i.ID,
  112. &i.ParentSessionID,
  113. &i.Title,
  114. &i.MessageCount,
  115. &i.PromptTokens,
  116. &i.CompletionTokens,
  117. &i.Cost,
  118. &i.UpdatedAt,
  119. &i.CreatedAt,
  120. &i.SummaryMessageID,
  121. &i.Todos,
  122. )
  123. return i, err
  124. }
  125. const listSessions = `-- name: ListSessions :many
  126. SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
  127. FROM sessions
  128. WHERE parent_session_id is NULL
  129. ORDER BY updated_at DESC
  130. `
  131. func (q *Queries) ListSessions(ctx context.Context) ([]Session, error) {
  132. rows, err := q.query(ctx, q.listSessionsStmt, listSessions)
  133. if err != nil {
  134. return nil, err
  135. }
  136. defer rows.Close()
  137. items := []Session{}
  138. for rows.Next() {
  139. var i Session
  140. if err := rows.Scan(
  141. &i.ID,
  142. &i.ParentSessionID,
  143. &i.Title,
  144. &i.MessageCount,
  145. &i.PromptTokens,
  146. &i.CompletionTokens,
  147. &i.Cost,
  148. &i.UpdatedAt,
  149. &i.CreatedAt,
  150. &i.SummaryMessageID,
  151. &i.Todos,
  152. ); err != nil {
  153. return nil, err
  154. }
  155. items = append(items, i)
  156. }
  157. if err := rows.Close(); err != nil {
  158. return nil, err
  159. }
  160. if err := rows.Err(); err != nil {
  161. return nil, err
  162. }
  163. return items, nil
  164. }
  165. const renameSession = `-- name: RenameSession :exec
  166. UPDATE sessions
  167. SET
  168. title = ?
  169. WHERE id = ?
  170. `
  171. type RenameSessionParams struct {
  172. Title string `json:"title"`
  173. ID string `json:"id"`
  174. }
  175. func (q *Queries) RenameSession(ctx context.Context, arg RenameSessionParams) error {
  176. _, err := q.exec(ctx, q.renameSessionStmt, renameSession, arg.Title, arg.ID)
  177. return err
  178. }
  179. const updateSession = `-- name: UpdateSession :one
  180. UPDATE sessions
  181. SET
  182. title = ?,
  183. prompt_tokens = ?,
  184. completion_tokens = ?,
  185. summary_message_id = ?,
  186. cost = ?,
  187. todos = ?
  188. WHERE id = ?
  189. RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
  190. `
  191. type UpdateSessionParams struct {
  192. Title string `json:"title"`
  193. PromptTokens int64 `json:"prompt_tokens"`
  194. CompletionTokens int64 `json:"completion_tokens"`
  195. SummaryMessageID sql.NullString `json:"summary_message_id"`
  196. Cost float64 `json:"cost"`
  197. Todos sql.NullString `json:"todos"`
  198. ID string `json:"id"`
  199. }
  200. func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (Session, error) {
  201. row := q.queryRow(ctx, q.updateSessionStmt, updateSession,
  202. arg.Title,
  203. arg.PromptTokens,
  204. arg.CompletionTokens,
  205. arg.SummaryMessageID,
  206. arg.Cost,
  207. arg.Todos,
  208. arg.ID,
  209. )
  210. var i Session
  211. err := row.Scan(
  212. &i.ID,
  213. &i.ParentSessionID,
  214. &i.Title,
  215. &i.MessageCount,
  216. &i.PromptTokens,
  217. &i.CompletionTokens,
  218. &i.Cost,
  219. &i.UpdatedAt,
  220. &i.CreatedAt,
  221. &i.SummaryMessageID,
  222. &i.Todos,
  223. )
  224. return i, err
  225. }
  226. const updateSessionTitleAndUsage = `-- name: UpdateSessionTitleAndUsage :exec
  227. UPDATE sessions
  228. SET
  229. title = ?,
  230. prompt_tokens = prompt_tokens + ?,
  231. completion_tokens = completion_tokens + ?,
  232. cost = cost + ?,
  233. updated_at = strftime('%s', 'now')
  234. WHERE id = ?
  235. `
  236. type UpdateSessionTitleAndUsageParams struct {
  237. Title string `json:"title"`
  238. PromptTokens int64 `json:"prompt_tokens"`
  239. CompletionTokens int64 `json:"completion_tokens"`
  240. Cost float64 `json:"cost"`
  241. ID string `json:"id"`
  242. }
  243. func (q *Queries) UpdateSessionTitleAndUsage(ctx context.Context, arg UpdateSessionTitleAndUsageParams) error {
  244. _, err := q.exec(ctx, q.updateSessionTitleAndUsageStmt, updateSessionTitleAndUsage,
  245. arg.Title,
  246. arg.PromptTokens,
  247. arg.CompletionTokens,
  248. arg.Cost,
  249. arg.ID,
  250. )
  251. return err
  252. }