Files
alla-allaos-fullstack/plans/task-b.1.md
phaichayon b8cd39eaa4 task-b
task-b.1
complere
2026-06-15 11:19:31 +07:00

469 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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