package docgov import ( "context" "fmt" ) // FreezeHeadSnapshotForTest 把文档 head/review 快照指针冻结到 snapID // (写本模块所有的 document_records),并清除引擎缓存使后续装载来自 PG。 // // 与 docrevision.SeedContentSnapshotForTest 配合:账本 seed 内容快照(docrevision // 生产行为),治理侧冻结指针(本模块生产行为)。供集成测试构造合法批准链。 func (e *GovernanceEngine) FreezeHeadSnapshotForTest(ctx context.Context, docID string, snapID int64) error { if e == nil || e.pool == nil { return fmt.Errorf("docgov: FreezeHeadSnapshotForTest requires a PG-backed engine") } if _, err := e.pool.Exec(ctx, `UPDATE document_records SET review_snapshot_id=$1, head_snapshot_id=$1 WHERE doc_id=$2`, snapID, docID); err != nil { return fmt.Errorf("docgov: freeze head snapshot: %w", err) } e.memMu.Lock() delete(e.memDocs, docID) e.memMu.Unlock() return nil }