This commit is contained in:
2026-03-26 12:48:47 +00:00
commit 2d4cff717b
21 changed files with 1835 additions and 0 deletions

57
db/rel.go Normal file
View File

@@ -0,0 +1,57 @@
package db
import "axolotl/models"
func (db *DB) AddRel(fromID, toID string, relType models.RelType) error {
_, err := db.Exec(
"INSERT OR IGNORE INTO rels (from_id, to_id, rel_type) VALUES (?, ?, ?)",
fromID, toID, relType,
)
return err
}
func (db *DB) RemoveRel(fromID, toID string, relType models.RelType) error {
_, err := db.Exec(
"DELETE FROM rels WHERE from_id = ? AND to_id = ? AND rel_type = ?",
fromID, toID, relType,
)
return err
}
func (db *DB) GetRelated(id string, relType models.RelType) ([]string, error) {
rows, err := db.Query(
"SELECT to_id FROM rels WHERE from_id = ? AND rel_type = ?",
id, relType,
)
if err != nil {
return nil, err
}
defer rows.Close()
var ids []string
for rows.Next() {
var target string
rows.Scan(&target)
ids = append(ids, target)
}
return ids, nil
}
func (db *DB) GetIncomingRels(id string, relType models.RelType) ([]string, error) {
rows, err := db.Query(
"SELECT from_id FROM rels WHERE to_id = ? AND rel_type = ?",
id, relType,
)
if err != nil {
return nil, err
}
defer rows.Close()
var ids []string
for rows.Next() {
var source string
rows.Scan(&source)
ids = append(ids, source)
}
return ids, nil
}