messages.sql.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. // Code generated by sqlc. DO NOT EDIT.
  2. // versions:
  3. // sqlc v1.30.0
  4. // source: messages.sql
  5. package db
  6. import (
  7. "context"
  8. "database/sql"
  9. )
  10. const createMessage = `-- name: CreateMessage :one
  11. INSERT INTO messages (
  12. id,
  13. session_id,
  14. role,
  15. parts,
  16. model,
  17. provider,
  18. is_summary_message,
  19. created_at,
  20. updated_at
  21. ) VALUES (
  22. ?, ?, ?, ?, ?, ?, ?, strftime('%s', 'now'), strftime('%s', 'now')
  23. )
  24. RETURNING id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
  25. `
  26. type CreateMessageParams struct {
  27. ID string `json:"id"`
  28. SessionID string `json:"session_id"`
  29. Role string `json:"role"`
  30. Parts string `json:"parts"`
  31. Model sql.NullString `json:"model"`
  32. Provider sql.NullString `json:"provider"`
  33. IsSummaryMessage int64 `json:"is_summary_message"`
  34. }
  35. func (q *Queries) CreateMessage(ctx context.Context, arg CreateMessageParams) (Message, error) {
  36. row := q.queryRow(ctx, q.createMessageStmt, createMessage,
  37. arg.ID,
  38. arg.SessionID,
  39. arg.Role,
  40. arg.Parts,
  41. arg.Model,
  42. arg.Provider,
  43. arg.IsSummaryMessage,
  44. )
  45. var i Message
  46. err := row.Scan(
  47. &i.ID,
  48. &i.SessionID,
  49. &i.Role,
  50. &i.Parts,
  51. &i.Model,
  52. &i.CreatedAt,
  53. &i.UpdatedAt,
  54. &i.FinishedAt,
  55. &i.Provider,
  56. &i.IsSummaryMessage,
  57. )
  58. return i, err
  59. }
  60. const deleteMessage = `-- name: DeleteMessage :exec
  61. DELETE FROM messages
  62. WHERE id = ?
  63. `
  64. func (q *Queries) DeleteMessage(ctx context.Context, id string) error {
  65. _, err := q.exec(ctx, q.deleteMessageStmt, deleteMessage, id)
  66. return err
  67. }
  68. const deleteSessionMessages = `-- name: DeleteSessionMessages :exec
  69. DELETE FROM messages
  70. WHERE session_id = ?
  71. `
  72. func (q *Queries) DeleteSessionMessages(ctx context.Context, sessionID string) error {
  73. _, err := q.exec(ctx, q.deleteSessionMessagesStmt, deleteSessionMessages, sessionID)
  74. return err
  75. }
  76. const getMessage = `-- name: GetMessage :one
  77. SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
  78. FROM messages
  79. WHERE id = ? LIMIT 1
  80. `
  81. func (q *Queries) GetMessage(ctx context.Context, id string) (Message, error) {
  82. row := q.queryRow(ctx, q.getMessageStmt, getMessage, id)
  83. var i Message
  84. err := row.Scan(
  85. &i.ID,
  86. &i.SessionID,
  87. &i.Role,
  88. &i.Parts,
  89. &i.Model,
  90. &i.CreatedAt,
  91. &i.UpdatedAt,
  92. &i.FinishedAt,
  93. &i.Provider,
  94. &i.IsSummaryMessage,
  95. )
  96. return i, err
  97. }
  98. const listAllUserMessages = `-- name: ListAllUserMessages :many
  99. SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
  100. FROM messages
  101. WHERE role = 'user'
  102. ORDER BY created_at DESC
  103. `
  104. func (q *Queries) ListAllUserMessages(ctx context.Context) ([]Message, error) {
  105. rows, err := q.query(ctx, q.listAllUserMessagesStmt, listAllUserMessages)
  106. if err != nil {
  107. return nil, err
  108. }
  109. defer rows.Close()
  110. items := []Message{}
  111. for rows.Next() {
  112. var i Message
  113. if err := rows.Scan(
  114. &i.ID,
  115. &i.SessionID,
  116. &i.Role,
  117. &i.Parts,
  118. &i.Model,
  119. &i.CreatedAt,
  120. &i.UpdatedAt,
  121. &i.FinishedAt,
  122. &i.Provider,
  123. &i.IsSummaryMessage,
  124. ); err != nil {
  125. return nil, err
  126. }
  127. items = append(items, i)
  128. }
  129. if err := rows.Close(); err != nil {
  130. return nil, err
  131. }
  132. if err := rows.Err(); err != nil {
  133. return nil, err
  134. }
  135. return items, nil
  136. }
  137. const listMessagesBySession = `-- name: ListMessagesBySession :many
  138. SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
  139. FROM messages
  140. WHERE session_id = ?
  141. ORDER BY created_at ASC
  142. `
  143. func (q *Queries) ListMessagesBySession(ctx context.Context, sessionID string) ([]Message, error) {
  144. rows, err := q.query(ctx, q.listMessagesBySessionStmt, listMessagesBySession, sessionID)
  145. if err != nil {
  146. return nil, err
  147. }
  148. defer rows.Close()
  149. items := []Message{}
  150. for rows.Next() {
  151. var i Message
  152. if err := rows.Scan(
  153. &i.ID,
  154. &i.SessionID,
  155. &i.Role,
  156. &i.Parts,
  157. &i.Model,
  158. &i.CreatedAt,
  159. &i.UpdatedAt,
  160. &i.FinishedAt,
  161. &i.Provider,
  162. &i.IsSummaryMessage,
  163. ); err != nil {
  164. return nil, err
  165. }
  166. items = append(items, i)
  167. }
  168. if err := rows.Close(); err != nil {
  169. return nil, err
  170. }
  171. if err := rows.Err(); err != nil {
  172. return nil, err
  173. }
  174. return items, nil
  175. }
  176. const listUserMessagesBySession = `-- name: ListUserMessagesBySession :many
  177. SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
  178. FROM messages
  179. WHERE session_id = ? AND role = 'user'
  180. ORDER BY created_at DESC
  181. `
  182. func (q *Queries) ListUserMessagesBySession(ctx context.Context, sessionID string) ([]Message, error) {
  183. rows, err := q.query(ctx, q.listUserMessagesBySessionStmt, listUserMessagesBySession, sessionID)
  184. if err != nil {
  185. return nil, err
  186. }
  187. defer rows.Close()
  188. items := []Message{}
  189. for rows.Next() {
  190. var i Message
  191. if err := rows.Scan(
  192. &i.ID,
  193. &i.SessionID,
  194. &i.Role,
  195. &i.Parts,
  196. &i.Model,
  197. &i.CreatedAt,
  198. &i.UpdatedAt,
  199. &i.FinishedAt,
  200. &i.Provider,
  201. &i.IsSummaryMessage,
  202. ); err != nil {
  203. return nil, err
  204. }
  205. items = append(items, i)
  206. }
  207. if err := rows.Close(); err != nil {
  208. return nil, err
  209. }
  210. if err := rows.Err(); err != nil {
  211. return nil, err
  212. }
  213. return items, nil
  214. }
  215. const updateMessage = `-- name: UpdateMessage :exec
  216. UPDATE messages
  217. SET
  218. parts = ?,
  219. finished_at = ?,
  220. updated_at = strftime('%s', 'now')
  221. WHERE id = ?
  222. `
  223. type UpdateMessageParams struct {
  224. Parts string `json:"parts"`
  225. FinishedAt sql.NullInt64 `json:"finished_at"`
  226. ID string `json:"id"`
  227. }
  228. func (q *Queries) UpdateMessage(ctx context.Context, arg UpdateMessageParams) error {
  229. _, err := q.exec(ctx, q.updateMessageStmt, updateMessage, arg.Parts, arg.FinishedAt, arg.ID)
  230. return err
  231. }