Files
lcbp3/specs/09-history/2025-12-25-drawing-module-refactor.md
admin cd73cc1549
Some checks failed
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled
251225:1703 On going update to 1.7.0: Refoctory drawing Module not finish
2025-12-25 17:03:33 +07:00

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