sessions.sql.go 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  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 getSessionByID = `-- name: GetSessionByID :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. WHERE id = ? LIMIT 1
  82. `
  83. func (q *Queries) GetSessionByID(ctx context.Context, id string) (Session, error) {
  84. row := q.queryRow(ctx, q.getSessionByIDStmt, getSessionByID, id)
  85. var i Session
  86. err := row.Scan(
  87. &i.ID,
  88. &i.ParentSessionID,
  89. &i.Title,
  90. &i.MessageCount,
  91. &i.PromptTokens,
  92. &i.CompletionTokens,
  93. &i.Cost,
  94. &i.UpdatedAt,
  95. &i.CreatedAt,
  96. &i.SummaryMessageID,
  97. &i.Todos,
  98. )
  99. return i, err
  100. }
  101. const listSessions = `-- name: ListSessions :many
  102. SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
  103. FROM sessions
  104. WHERE parent_session_id is NULL
  105. ORDER BY updated_at DESC
  106. `
  107. func (q *Queries) ListSessions(ctx context.Context) ([]Session, error) {
  108. rows, err := q.query(ctx, q.listSessionsStmt, listSessions)
  109. if err != nil {
  110. return nil, err
  111. }
  112. defer rows.Close()
  113. items := []Session{}
  114. for rows.Next() {
  115. var i Session
  116. if err := rows.Scan(
  117. &i.ID,
  118. &i.ParentSessionID,
  119. &i.Title,
  120. &i.MessageCount,
  121. &i.PromptTokens,
  122. &i.CompletionTokens,
  123. &i.Cost,
  124. &i.UpdatedAt,
  125. &i.CreatedAt,
  126. &i.SummaryMessageID,
  127. &i.Todos,
  128. ); err != nil {
  129. return nil, err
  130. }
  131. items = append(items, i)
  132. }
  133. if err := rows.Close(); err != nil {
  134. return nil, err
  135. }
  136. if err := rows.Err(); err != nil {
  137. return nil, err
  138. }
  139. return items, nil
  140. }
  141. const updateSession = `-- name: UpdateSession :one
  142. UPDATE sessions
  143. SET
  144. title = ?,
  145. prompt_tokens = ?,
  146. completion_tokens = ?,
  147. summary_message_id = ?,
  148. cost = ?,
  149. todos = ?
  150. WHERE id = ?
  151. RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
  152. `
  153. type UpdateSessionParams struct {
  154. Title string `json:"title"`
  155. PromptTokens int64 `json:"prompt_tokens"`
  156. CompletionTokens int64 `json:"completion_tokens"`
  157. SummaryMessageID sql.NullString `json:"summary_message_id"`
  158. Cost float64 `json:"cost"`
  159. Todos sql.NullString `json:"todos"`
  160. ID string `json:"id"`
  161. }
  162. func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (Session, error) {
  163. row := q.queryRow(ctx, q.updateSessionStmt, updateSession,
  164. arg.Title,
  165. arg.PromptTokens,
  166. arg.CompletionTokens,
  167. arg.SummaryMessageID,
  168. arg.Cost,
  169. arg.Todos,
  170. arg.ID,
  171. )
  172. var i Session
  173. err := row.Scan(
  174. &i.ID,
  175. &i.ParentSessionID,
  176. &i.Title,
  177. &i.MessageCount,
  178. &i.PromptTokens,
  179. &i.CompletionTokens,
  180. &i.Cost,
  181. &i.UpdatedAt,
  182. &i.CreatedAt,
  183. &i.SummaryMessageID,
  184. &i.Todos,
  185. )
  186. return i, err
  187. }
  188. const updateSessionTitleAndUsage = `-- name: UpdateSessionTitleAndUsage :exec
  189. UPDATE sessions
  190. SET
  191. title = ?,
  192. prompt_tokens = prompt_tokens + ?,
  193. completion_tokens = completion_tokens + ?,
  194. cost = cost + ?
  195. WHERE id = ?
  196. `
  197. type UpdateSessionTitleAndUsageParams struct {
  198. Title string `json:"title"`
  199. PromptTokens int64 `json:"prompt_tokens"`
  200. CompletionTokens int64 `json:"completion_tokens"`
  201. Cost float64 `json:"cost"`
  202. ID string `json:"id"`
  203. }
  204. func (q *Queries) UpdateSessionTitleAndUsage(ctx context.Context, arg UpdateSessionTitleAndUsageParams) error {
  205. _, err := q.exec(ctx, q.updateSessionTitleAndUsageStmt, updateSessionTitleAndUsage,
  206. arg.Title,
  207. arg.PromptTokens,
  208. arg.CompletionTokens,
  209. arg.Cost,
  210. arg.ID,
  211. )
  212. return err
  213. }