feat(api): item dependency extraction, indexing, and resolve endpoints

- Add Dependency type to internal/kc and extract silo/dependencies.json
  from .kc files on commit
- Create ItemDependencyRepository with ReplaceForRevision, ListByItem,
  and Resolve (LEFT JOIN against items table)
- Add GET /{partNumber}/dependencies and
  GET /{partNumber}/dependencies/resolve endpoints
- Index dependencies in extractKCMetadata with SSE broadcast
- Pack real dependency data into .kc files on checkout
- Update PackInput.Dependencies from []any to []Dependency

Closes #143
This commit is contained in:
Forbes
2026-02-18 18:53:40 -06:00
parent c216d64702
commit cffcf56085
8 changed files with 357 additions and 7 deletions

View File

@@ -56,6 +56,7 @@ type Server struct {
cfg *config.Config
settings *db.SettingsRepository
metadata *db.ItemMetadataRepository
deps *db.ItemDependencyRepository
}
// NewServer creates a new API server.
@@ -85,6 +86,7 @@ func NewServer(
settings := db.NewSettingsRepository(database)
locations := db.NewLocationRepository(database)
metadata := db.NewItemMetadataRepository(database)
itemDeps := db.NewItemDependencyRepository(database)
seqStore := &dbSequenceStore{db: database, schemas: schemas}
partgen := partnum.NewGenerator(schemas, seqStore)
@@ -114,6 +116,7 @@ func NewServer(
cfg: cfg,
settings: settings,
metadata: metadata,
deps: itemDeps,
}
}