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 08cd81a..c863799 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -19,6 +19,7 @@ type ChatHistory interface { GetLastChat() (*models.Chat, error) UpsertChat(chat *models.Chat) (*models.Chat, error) RemoveChat(id uint32) error + ChatGetMaxID() (uint32, error) } type ProviderSQL struct { @@ -66,6 +67,13 @@ func (p ProviderSQL) RemoveChat(id uint32) error { return err } +func (p ProviderSQL) ChatGetMaxID() (uint32, error) { + query := "SELECT MAX(id) FROM chats;" + var id uint32 + err := p.db.Get(&id, query) + return id, err +} + func NewProviderSQL(dbPath string, logger *slog.Logger) FullRepo { db, err := sqlx.Open("sqlite", dbPath) if err != nil { |