## Status

- [x] step-1-domain: domain/entities/ProductStructure.ts (added componentCount) + domain/repositories/ProductStructureRepository.ts (added getTree, addComponent, removeComponent + AddComponentParams)
- [x] step-2-usecases: GetStructures, CreateStructure, DeactivateStructure (existed) + GetStructureTree, AddStructureComponent, RemoveStructureComponent (new)
- [x] step-3-infra: infrastructure/api/ProductStructureApiRepository.ts + 6 react-query hooks in infrastructure/react-query/product-structure/
- [x] step-4-di: di/types.ts (7 new tokens) + di/container.ts (7 new bindings + imports)
- [x] step-5-presentation: DetailProductKetCau.tsx + CreateStructureModal.tsx
- [x] step-6-integrate: tab "Kết cấu" at /products/:id/ket-cau wired in allRoutes.tsx + DetailProductLayout.tsx

## Files changed (web-kingston)

- packages/main-app/src/clean-architecture/domain/entities/ProductStructure.ts (modified — added componentCount)
- packages/main-app/src/clean-architecture/domain/repositories/ProductStructureRepository.ts (modified — added getTree/addComponent/removeComponent + AddComponentParams)
- packages/main-app/src/clean-architecture/application/useCases/productStructure/GetStructureTree.ts (created)
- packages/main-app/src/clean-architecture/application/useCases/productStructure/AddStructureComponent.ts (created)
- packages/main-app/src/clean-architecture/application/useCases/productStructure/RemoveStructureComponent.ts (created)
- packages/main-app/src/clean-architecture/di/types.ts (modified — 7 new tokens)
- packages/main-app/src/clean-architecture/di/container.ts (modified — 7 new bindings + imports)
- packages/main-app/src/clean-architecture/infrastructure/api/ProductStructureApiRepository.ts (created)
- packages/main-app/src/clean-architecture/infrastructure/react-query/product-structure/useGetStructures.ts (created)
- packages/main-app/src/clean-architecture/infrastructure/react-query/product-structure/useCreateStructure.ts (created)
- packages/main-app/src/clean-architecture/infrastructure/react-query/product-structure/useDeactivateStructure.ts (created)
- packages/main-app/src/clean-architecture/infrastructure/react-query/product-structure/useGetStructureTree.ts (created)
- packages/main-app/src/clean-architecture/infrastructure/react-query/product-structure/useAddStructureComponent.ts (created)
- packages/main-app/src/clean-architecture/infrastructure/react-query/product-structure/useRemoveStructureComponent.ts (created)
- packages/main-app/src/clean-architecture/presentation/components/pages/product/DetailProductKetCau/DetailProductKetCau.tsx (created)
- packages/main-app/src/clean-architecture/presentation/components/pages/product/DetailProductKetCau/CreateStructureModal.tsx (created)
- packages/main-app/src/clean-architecture/routes/allRoutes.tsx (modified — added ket-cau route + import)
- packages/main-app/src/clean-architecture/presentation/components/pages/product/DetailProductLayout/DetailProductLayout.tsx (modified — added KetCau tab enum + tab entry)

## Type check result

`bun run type-check` → clean, 0 errors
