memos/store/memo_relation.go
memoclaw 1e82714a52
perf: batch load memo relations when listing memos (#5692)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:19:19 +08:00

47 lines
1.2 KiB
Go

package store
import (
"context"
)
type MemoRelationType string
const (
// MemoRelationReference is the type for a reference memo relation.
MemoRelationReference MemoRelationType = "REFERENCE"
// MemoRelationComment is the type for a comment memo relation.
MemoRelationComment MemoRelationType = "COMMENT"
)
type MemoRelation struct {
MemoID int32
RelatedMemoID int32
Type MemoRelationType
}
type FindMemoRelation struct {
MemoID *int32
RelatedMemoID *int32
Type *MemoRelationType
MemoFilter *string
// MemoIDList matches relations where memo_id OR related_memo_id is in the list.
MemoIDList []int32
}
type DeleteMemoRelation struct {
MemoID *int32
RelatedMemoID *int32
Type *MemoRelationType
}
func (s *Store) UpsertMemoRelation(ctx context.Context, create *MemoRelation) (*MemoRelation, error) {
return s.driver.UpsertMemoRelation(ctx, create)
}
func (s *Store) ListMemoRelations(ctx context.Context, find *FindMemoRelation) ([]*MemoRelation, error) {
return s.driver.ListMemoRelations(ctx, find)
}
func (s *Store) DeleteMemoRelation(ctx context.Context, delete *DeleteMemoRelation) error {
return s.driver.DeleteMemoRelation(ctx, delete)
}