added structure for db

This commit is contained in:
Radu Macocian (admac)
2026-06-12 16:44:04 +02:00
parent de546d8df4
commit 4f989aa512
8 changed files with 252 additions and 58 deletions
+65
View File
@@ -0,0 +1,65 @@
package history
import (
"net"
"net/url"
"git.estatecloud.org/radumaco/souvenir/config"
"git.estatecloud.org/radumaco/souvenir/model"
"github.com/gopsql/pgx"
)
type DbClient struct {
Cfg config.DbConfig
}
type Conversation struct {
Id string
Messages []model.Message
}
func (client DbClient) init() error {
const createConversationTable = `
CREATE TABLE IF NOT EXISTS conversations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
)`
const createMessageTable = `
CREATE TABLE IF NOT EXISTS messages (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
role TEXT NOT NULL
content TEXT NOT NULL
conversation_id UUID
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
)`
const createToolCallTable = `
CREATE TABLE IF NOT EXISTS tool_calls (
id UUID PRIMARY KEY,
type TEXT NOT NULL
functionName TEXT NOT NULL
functionArgs TEXT NOT NULL
message_id UUID
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
)`
conn := pgx.MustOpen(client.connectionString())
defer conn.Close()
if _, err := conn.Exec(createToolCallTable); err != nil {
return err
}
if _, err := conn.Exec(createToolCallTable); err != nil {
return err
}
return nil
}
func (client DbClient) connectionString() string {
u := &url.URL{
Scheme: "postgres",
User: url.UserPassword(client.Cfg.User, client.Cfg.Password),
Host: net.JoinHostPort(client.Cfg.Url, client.Cfg.Port),
Path: client.Cfg.DbName,
}
return u.String()
}