WFDASH-WEBAPP/docs/migration-audit.md
SJCoetz 7df7a8850f feat(item-history): add getItemHistory service with 5 PB queries
Co-authored-by: Orca <help@stably.ai>
2026-07-29 14:51:58 +02:00

47 lines
2.3 KiB
Markdown

# WFDASH Migration Audit (2026-05-25)
## Current State
- Legacy app: Django monolith in `/D:/NEWBUILD/WFDASH_django`.
- New app: Next.js + PocketBase in `/D:/NEWBUILD/wfnextjs`.
- Database direction: PocketBase collections already mirror core CRM entities.
- Operations direction: workflow automation moving to n8n.
## Django Scope Found
- 40+ model classes across modules, including: quotes, orders, driver_list, delivery_notes, stock, repairs, husqvarna service, POS, AI orders, reporting/portal modules.
- Heavy background/process setup: Celery, Redis, email monitors, webhook integrations, debug middleware, multiple app copies/archives.
- Hosting complexity indicators:
- very broad `INSTALLED_APPS`
- multiple legacy snapshots (`*_old`, date-stamped modules)
- mixed concerns (UI, automation, integrations, monitoring) in one runtime.
## Next.js Scope Found
- Strong foundation for CRM core modules (customers, companies, suppliers, quotes, orders).
- PocketBase collection integration already implemented in UI helpers.
- Missing before agent rollout:
- dedicated server API layer
- MCP-compatible tool gateway
- migration governance docs and field naming standards.
## PocketBase Findings (from attached schema)
Core collections present:
- `customers`, `companies`, `suppliers`, `quotes`, `quote_items`, `orders`, `order_items`, `purchase_orders`.
`order_items` already includes advanced lifecycle fields and driver/delivery states.
Current mixed naming exists (`driver_status`) while new desired naming is `drv_*`.
## Recommended Migration Strategy
1. Freeze feature growth in Django except critical fixes.
2. Define "parity slices" by workflow, not by old apps.
3. Migrate in this order:
1. Quote to Order conversion lifecycle
2. Order item operations + driver loop
3. Purchase order + supplier communications
4. Monitoring and alerts via n8n
5. Optional legacy modules (repairs/POS/service) only if still needed
4. Keep PocketBase as source of truth for transactional state.
5. Move automations to n8n and keep Next.js API minimal and deterministic.
## Immediate Deliverables Added in This Repo
- `/D:/NEWBUILD/wfnextjs/src/app/api/v1/*` REST starter routes for agents.
- `/D:/NEWBUILD/wfnextjs/src/app/api/mcp/route.ts` MCP-style JSON-RPC gateway.
- Normalizer accepting both `driver_status` and `drv_status` for transition safety.