Replace the single CatalogMaterialDto + CatalogDimensionsDto (bag of nullable
fields) with per-shape DTOs that have strongly-typed dimension properties.
Catalog JSON now groups materials by shape key instead of a flat array.
Delete the old SeedController/SeedDataDtos (superseded by CatalogService).
Scraper updated to emit the new grouped format, resume by default, and
save items incrementally.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch MaterialDimensions inheritance from TPH (single table with discriminator)
to TPC (table per concrete type) with individual tables per shape. Add Swagger
for dev API exploration, expand SeedController with export/import endpoints and
Alro catalog JSON dataset, and include Python scraper for Alro catalog PDFs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the standalone ExportData console app and hardcoded SeedController
with generic GET /api/catalog/export and POST /api/catalog/import endpoints.
Import uses upsert semantics with per-item error handling, preserving
existing inventory quantities.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add controllers for suppliers, stock items, jobs, cutting tools, and
packing. Refactor MaterialsController to use MaterialService with
dimension-aware CRUD, search, and bulk operations. Extract DTOs into
dedicated files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add SortOrder as secondary ordering key after Shape across all material
queries (list_materials, search methods)
- Default material type to "Steel" when not specified in add_stock_with_offering
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
MaterialsController:
- Update to use MaterialShape enum
- Add Type and Grade to imports
- Fix display name formatting
SeedController:
- Update seed data to use MaterialShape enum
- Add MaterialType assignments
CuttingTool:
- Add Notes property
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds MaterialsController with bulk import support and SeedController
for development data seeding.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>