task-b
task-b.1 complere
This commit is contained in:
468
plans/task-b.1.md
Normal file
468
plans/task-b.1.md
Normal file
@@ -0,0 +1,468 @@
|
||||
# Task B.1 – Foundation Stabilization & Production Isolation
|
||||
|
||||
## Context
|
||||
|
||||
Task B Foundation Layer เสร็จแล้ว
|
||||
|
||||
ปัจจุบันระบบมี:
|
||||
|
||||
* Organization Context
|
||||
* Membership Context
|
||||
* Permission Layer
|
||||
* Branch Scope
|
||||
* Master Options
|
||||
* Document Sequence
|
||||
* Audit Log Helper
|
||||
|
||||
เป้าหมายของ Task B.1 คือทำให้ Foundation พร้อมใช้งานจริงก่อนเริ่ม Task C (Customer + Contact)
|
||||
|
||||
---
|
||||
|
||||
# สิ่งที่ต้องอ่านก่อน
|
||||
|
||||
อ่านและยึดตาม:
|
||||
|
||||
```txt
|
||||
docs/implementation/task-a-template-audit.md
|
||||
docs/implementation/task-b-template-audit.md
|
||||
|
||||
Layout.md
|
||||
AGENTS.md
|
||||
|
||||
.agents/skills/kiranism-shadcn-dashboard
|
||||
|
||||
src/auth.ts
|
||||
src/lib/auth/**
|
||||
src/db/schema.ts
|
||||
|
||||
src/features/products/**
|
||||
src/features/users/**
|
||||
```
|
||||
|
||||
ใช้ products และ users เป็น production reference
|
||||
|
||||
---
|
||||
|
||||
# เป้าหมาย
|
||||
|
||||
ทำ 2 เรื่องหลัก:
|
||||
|
||||
1. Foundation Stabilization
|
||||
2. Production Isolation
|
||||
|
||||
โดยยังไม่เริ่ม Customer Module
|
||||
|
||||
---
|
||||
|
||||
# Part A: Foundation Stabilization
|
||||
|
||||
## A.1 Review Foundation Tables
|
||||
|
||||
ตรวจสอบ schema ใหม่ที่เพิ่มจาก Task B
|
||||
|
||||
```txt
|
||||
msOptions
|
||||
documentSequences
|
||||
trAuditLogs
|
||||
```
|
||||
|
||||
ตรวจสอบ:
|
||||
|
||||
* unique constraint
|
||||
* indexes
|
||||
* foreign keys
|
||||
* organizationId consistency
|
||||
* soft delete support
|
||||
|
||||
หากพบจุดที่ควรปรับปรุง
|
||||
|
||||
ให้เขียนเป็น Migration Note
|
||||
|
||||
ห้ามแก้ schema โดยไม่จำเป็น
|
||||
|
||||
---
|
||||
|
||||
## A.2 Create Foundation Seed
|
||||
|
||||
สร้าง seed script
|
||||
|
||||
ตัวอย่าง path:
|
||||
|
||||
```txt
|
||||
src/db/seeds/foundation.seed.ts
|
||||
```
|
||||
|
||||
Seed เฉพาะ foundation data
|
||||
|
||||
### crm_branch
|
||||
|
||||
```txt
|
||||
สำนักงานใหญ่
|
||||
Factory
|
||||
Service
|
||||
```
|
||||
|
||||
### crm_customer_status
|
||||
|
||||
```txt
|
||||
active
|
||||
inactive
|
||||
suspended
|
||||
```
|
||||
|
||||
### crm_customer_type
|
||||
|
||||
```txt
|
||||
company
|
||||
individual
|
||||
```
|
||||
|
||||
### crm_enquiry_status
|
||||
|
||||
```txt
|
||||
new
|
||||
qualifying
|
||||
requirement
|
||||
follow_up
|
||||
converted
|
||||
closed_lost
|
||||
cancelled
|
||||
```
|
||||
|
||||
### crm_quotation_status
|
||||
|
||||
```txt
|
||||
draft
|
||||
pending_approval
|
||||
approved
|
||||
rejected
|
||||
sent
|
||||
accepted
|
||||
lost
|
||||
cancelled
|
||||
revised
|
||||
```
|
||||
|
||||
### crm_product_type
|
||||
|
||||
```txt
|
||||
crane
|
||||
dockdoor
|
||||
solarcell
|
||||
```
|
||||
|
||||
### crm_currency
|
||||
|
||||
```txt
|
||||
THB
|
||||
USD
|
||||
EUR
|
||||
```
|
||||
|
||||
### crm_payment_term
|
||||
|
||||
```txt
|
||||
cash
|
||||
credit_30
|
||||
credit_60
|
||||
```
|
||||
|
||||
### crm_priority
|
||||
|
||||
```txt
|
||||
low
|
||||
normal
|
||||
high
|
||||
urgent
|
||||
```
|
||||
|
||||
### crm_lead_channel
|
||||
|
||||
```txt
|
||||
website
|
||||
referral
|
||||
sales
|
||||
facebook
|
||||
line
|
||||
other
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## A.3 Seed Document Sequences
|
||||
|
||||
Seed initial document types
|
||||
|
||||
```txt
|
||||
customer
|
||||
contact
|
||||
enquiry
|
||||
quotation
|
||||
approval
|
||||
```
|
||||
|
||||
Mapping
|
||||
|
||||
```txt
|
||||
CUS
|
||||
CON
|
||||
ENQ
|
||||
QT
|
||||
APV
|
||||
```
|
||||
|
||||
Requirements:
|
||||
|
||||
* idempotent
|
||||
* run ซ้ำได้
|
||||
* ไม่สร้างข้อมูลซ้ำ
|
||||
* ใช้ organizationId จาก database
|
||||
* ห้าม hardcode organizationId
|
||||
|
||||
หากไม่พบ organization
|
||||
|
||||
ให้ throw error พร้อมข้อความชัดเจน
|
||||
|
||||
---
|
||||
|
||||
## A.4 Verify Foundation Services
|
||||
|
||||
ตรวจสอบ service ที่สร้างใน Task B
|
||||
|
||||
```txt
|
||||
auth-context
|
||||
organization-context
|
||||
permission
|
||||
branch-scope
|
||||
master-options
|
||||
document-sequence
|
||||
audit-log
|
||||
```
|
||||
|
||||
ตรวจสอบ:
|
||||
|
||||
* naming consistency
|
||||
* return type consistency
|
||||
* error handling
|
||||
* organization-first design
|
||||
|
||||
หากพบปัญหา
|
||||
|
||||
ให้แก้เฉพาะ foundation layer
|
||||
|
||||
---
|
||||
|
||||
# Part B: Production Isolation
|
||||
|
||||
## เป้าหมาย
|
||||
|
||||
แยก legacy CRM mock ออกจาก production path
|
||||
|
||||
เพื่อให้ Task C เริ่มบน production architecture เท่านั้น
|
||||
|
||||
---
|
||||
|
||||
## B.1 Audit Existing CRM Module
|
||||
|
||||
ตรวจสอบ
|
||||
|
||||
```txt
|
||||
src/features/crm/**
|
||||
src/app/dashboard/crm/**
|
||||
```
|
||||
|
||||
จำแนกเป็น:
|
||||
|
||||
### Production-ready
|
||||
|
||||
ใช้ต่อได้
|
||||
|
||||
### Legacy Mock
|
||||
|
||||
ยังใช้
|
||||
|
||||
* mock data
|
||||
* in-memory state
|
||||
* placeholder service
|
||||
* fake API
|
||||
|
||||
---
|
||||
|
||||
## B.2 Move Mock Out of Production Path
|
||||
|
||||
ห้ามลบไฟล์
|
||||
|
||||
ให้ย้ายไป:
|
||||
|
||||
```txt
|
||||
src/features/crm-mock/**
|
||||
```
|
||||
|
||||
หรือ
|
||||
|
||||
```txt
|
||||
src/features/crm-demo/**
|
||||
```
|
||||
|
||||
แล้วแต่ convention ที่เหมาะกับโปรเจ็ค
|
||||
|
||||
---
|
||||
|
||||
## B.3 Route Isolation
|
||||
|
||||
Production route:
|
||||
|
||||
```txt
|
||||
/dashboard/crm
|
||||
```
|
||||
|
||||
Mock route:
|
||||
|
||||
```txt
|
||||
/dashboard/crm-demo
|
||||
```
|
||||
|
||||
Requirements:
|
||||
|
||||
* ห้าม production route import mock service
|
||||
* ห้าม production route import mock API
|
||||
* ห้าม production component พึ่ง mock state
|
||||
|
||||
---
|
||||
|
||||
## B.4 Import Audit
|
||||
|
||||
ตรวจสอบ import ทั้งระบบ
|
||||
|
||||
ค้นหา:
|
||||
|
||||
```txt
|
||||
mock-api
|
||||
mock-api-users
|
||||
crm mock service
|
||||
fake data
|
||||
in-memory store
|
||||
```
|
||||
|
||||
ถ้ายังถูก import ใน production path
|
||||
|
||||
ให้แก้
|
||||
|
||||
---
|
||||
|
||||
## B.5 Compile Error Cleanup
|
||||
|
||||
แก้เฉพาะ:
|
||||
|
||||
```txt
|
||||
type errors
|
||||
missing imports
|
||||
unused exports
|
||||
broken references
|
||||
```
|
||||
|
||||
ห้าม:
|
||||
|
||||
* เปลี่ยน business flow
|
||||
* rewrite CRM module
|
||||
* เริ่ม Customer production
|
||||
|
||||
---
|
||||
|
||||
# Deliverables
|
||||
|
||||
สร้างเอกสาร
|
||||
|
||||
```txt
|
||||
docs/implementation/task-b1-foundation-stabilization.md
|
||||
```
|
||||
|
||||
ต้องมี:
|
||||
|
||||
## Foundation Review
|
||||
|
||||
* schema review
|
||||
* seed review
|
||||
* service review
|
||||
|
||||
## Production Isolation Review
|
||||
|
||||
* production modules
|
||||
* demo modules
|
||||
* route separation
|
||||
|
||||
## Risks
|
||||
|
||||
* remaining mock dependencies
|
||||
* migration concerns
|
||||
|
||||
## Task C Readiness
|
||||
|
||||
---
|
||||
|
||||
# ห้ามทำ
|
||||
|
||||
```txt
|
||||
Customer CRUD
|
||||
Contact CRUD
|
||||
Enquiry CRUD
|
||||
Quotation CRUD
|
||||
Approval Workflow
|
||||
Dashboard KPI
|
||||
PDF Generator
|
||||
Reporting
|
||||
Notification
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# ห้ามรัน
|
||||
|
||||
```txt
|
||||
npm run build
|
||||
npm run lint
|
||||
npm run test
|
||||
pnpm build
|
||||
pnpm lint
|
||||
pnpm test
|
||||
```
|
||||
|
||||
จนกว่าจะได้รับคำสั่ง
|
||||
|
||||
---
|
||||
|
||||
# Output ที่ต้องการ
|
||||
|
||||
หลังทำเสร็จให้สรุป:
|
||||
|
||||
1. Files Added
|
||||
2. Files Modified
|
||||
3. Seed Scripts Added
|
||||
4. Mock Modules Moved
|
||||
5. Production Routes Verified
|
||||
6. Remaining Risks
|
||||
7. Task C Readiness
|
||||
|
||||
---
|
||||
|
||||
# Definition of Done
|
||||
|
||||
✔ Foundation tables reviewed
|
||||
|
||||
✔ Foundation seed script created
|
||||
|
||||
✔ Document sequence seed created
|
||||
|
||||
✔ Foundation services reviewed
|
||||
|
||||
✔ Mock CRM isolated from production path
|
||||
|
||||
✔ Production route no longer depends on mock services
|
||||
|
||||
✔ Compile issues related to isolation fixed
|
||||
|
||||
✔ Task C can begin safely
|
||||
|
||||
✔ No Customer module created
|
||||
|
||||
✔ No Quotation module created
|
||||
Reference in New Issue
Block a user