diff options
Diffstat (limited to 'storage/storage.go')
-rw-r--r-- | storage/storage.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/storage/storage.go b/storage/storage.go index 66640fd..9a1595c 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -17,6 +17,7 @@ type ChatHistory interface { ListChats() ([]models.Chat, error) GetChatByID(id uint32) (*models.Chat, error) GetLastChat() (*models.Chat, error) + GetLastChatByAgent(agent string) (*models.Chat, error) UpsertChat(chat *models.Chat) (*models.Chat, error) RemoveChat(id uint32) error ChatGetMaxID() (uint32, error) @@ -45,6 +46,13 @@ func (p ProviderSQL) GetLastChat() (*models.Chat, error) { return &resp, err } +func (p ProviderSQL) GetLastChatByAgent(agent string) (*models.Chat, error) { + resp := models.Chat{} + query := "SELECT * FROM chats WHERE agent=$1 ORDER BY updated_at DESC LIMIT 1" + err := p.db.Get(&resp, query, agent) + return &resp, err +} + func (p ProviderSQL) UpsertChat(chat *models.Chat) (*models.Chat, error) { // Prepare the SQL statement query := ` |