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 }