| 1555 | } |
| 1556 | |
| 1557 | func ChatMessage(m database.ChatMessage) codersdk.ChatMessage { |
| 1558 | modelConfigID := &m.ModelConfigID.UUID |
| 1559 | if !m.ModelConfigID.Valid { |
| 1560 | modelConfigID = nil |
| 1561 | } |
| 1562 | createdBy := &m.CreatedBy.UUID |
| 1563 | if !m.CreatedBy.Valid { |
| 1564 | createdBy = nil |
| 1565 | } |
| 1566 | msg := codersdk.ChatMessage{ |
| 1567 | ID: m.ID, |
| 1568 | ChatID: m.ChatID, |
| 1569 | CreatedBy: createdBy, |
| 1570 | ModelConfigID: modelConfigID, |
| 1571 | CreatedAt: m.CreatedAt, |
| 1572 | Role: codersdk.ChatMessageRole(m.Role), |
| 1573 | } |
| 1574 | if m.Content.Valid { |
| 1575 | parts, err := chatMessageParts(m) |
| 1576 | if err == nil { |
| 1577 | msg.Content = parts |
| 1578 | } |
| 1579 | } |
| 1580 | usage := chatMessageUsage(m) |
| 1581 | if usage != nil { |
| 1582 | msg.Usage = usage |
| 1583 | } |
| 1584 | return msg |
| 1585 | } |
| 1586 | |
| 1587 | // chatMessageUsage builds a ChatMessageUsage from the database row, |
| 1588 | // returning nil when no token fields are populated. |