81 lines
3.5 KiB
Markdown
81 lines
3.5 KiB
Markdown
# Session History: Drawing Module Refactor v1.7.0
|
|
|
|
**Date:** 2025-12-25
|
|
**Session ID:** cdbb2d6b-1fab-459e-8ec9-e864bd30b308
|
|
|
|
---
|
|
|
|
## Objective
|
|
Refactor Drawing module (backend & frontend) to align with `lcbp3-v1.7.0-schema.sql`, specifically for AS Built Drawings.
|
|
|
|
---
|
|
|
|
## Changes Made
|
|
|
|
### Backend
|
|
|
|
#### Entities Updated
|
|
| File | Changes |
|
|
| ------------------------------------ | --------------------------------------------------- |
|
|
| `asbuilt-drawing.entity.ts` | Added `mainCategoryId`, `subCategoryId` + relations |
|
|
| `asbuilt-drawing-revision.entity.ts` | Added `legacyDrawingNumber` |
|
|
|
|
#### New Files Created
|
|
| File | Description |
|
|
| -------------------------------------------- | ----------------------------------- |
|
|
| `dto/create-asbuilt-drawing.dto.ts` | Create AS Built with first revision |
|
|
| `dto/create-asbuilt-drawing-revision.dto.ts` | Add revision to existing AS Built |
|
|
| `dto/search-asbuilt-drawing.dto.ts` | Search with pagination |
|
|
| `asbuilt-drawing.service.ts` | CRUD service |
|
|
| `asbuilt-drawing.controller.ts` | REST controller |
|
|
|
|
#### Module Updated
|
|
- `drawing.module.ts` - Registered new entities, service, controller
|
|
|
|
#### New API Endpoints
|
|
| Method | Path | Description |
|
|
| ------ | --------------------------------- | ------------ |
|
|
| POST | `/drawings/asbuilt` | Create |
|
|
| POST | `/drawings/asbuilt/:id/revisions` | Add revision |
|
|
| GET | `/drawings/asbuilt` | List |
|
|
| GET | `/drawings/asbuilt/:id` | Get by ID |
|
|
| DELETE | `/drawings/asbuilt/:id` | Delete |
|
|
|
|
---
|
|
|
|
### Frontend
|
|
|
|
#### Types Updated
|
|
| File | Changes |
|
|
| ------------------------------------------ | ------------------------------------------------------------------- |
|
|
| `types/drawing.ts` | `AsBuiltDrawing` interface: added `mainCategoryId`, `subCategoryId` |
|
|
| `types/dto/drawing/asbuilt-drawing.dto.ts` | Added category IDs |
|
|
|
|
#### Components Updated
|
|
| File | Changes |
|
|
| ------------------------------------- | ------------------------------------------------------- |
|
|
| `components/drawings/upload-form.tsx` | AS_BUILT form: added category selectors, title required |
|
|
| `components/drawings/list.tsx` | `projectId` now required prop |
|
|
| `app/(dashboard)/drawings/page.tsx` | Added project selector dropdown |
|
|
|
|
#### Hooks Updated
|
|
| File | Changes |
|
|
| ---------------------- | -------------------------------- |
|
|
| `hooks/use-drawing.ts` | Fixed toast message for AS_BUILT |
|
|
|
|
---
|
|
|
|
## Verification Results
|
|
|
|
| Component | Command | Result |
|
|
| --------- | ------------ | --------- |
|
|
| Backend | `pnpm build` | ✅ Success |
|
|
| Frontend | `pnpm build` | ✅ Success |
|
|
|
|
---
|
|
|
|
## Notes
|
|
- AS Built Drawings use same category structure as Shop Drawings (`shop_drawing_main_categories`, `shop_drawing_sub_categories`)
|
|
- No existing data in `asbuilt_drawings` table, no migration needed
|
|
- Pre-existing lint warnings (`any` types) in `upload-form.tsx` not addressed in this session
|