128 lines
3.2 KiB
Markdown
128 lines
3.2 KiB
Markdown
# Task D.6.1 – Lead Create Form UX & Default Rules
|
||
|
||
## Objective
|
||
|
||
ปรับหน้า Create Lead ให้เหมาะกับการสร้าง Lead ใหม่จริง โดยซ่อน field ที่ยังไม่ควรใช้ตอนเริ่มต้น และตั้งค่า default ตาม business rule
|
||
|
||
---
|
||
|
||
## Requirements
|
||
|
||
### 1. Hide fields on Create Lead
|
||
|
||
ตอนสร้าง Lead ใหม่ ไม่ต้องแสดง field ต่อไปนี้:
|
||
|
||
* Lost Reason
|
||
* Status
|
||
* Marketing Owner
|
||
|
||
Field เหล่านี้อาจแสดงในหน้า Edit/Detail ตาม permission และสถานะภายหลังได้
|
||
|
||
---
|
||
|
||
### 2. Default Lead Status
|
||
|
||
เมื่อสร้าง Lead ใหม่ ให้ระบบตั้งสถานะอัตโนมัติเป็น:
|
||
|
||
```text
|
||
new_job
|
||
```
|
||
|
||
หรือ label:
|
||
|
||
```text
|
||
New Job
|
||
```
|
||
|
||
User ไม่ต้องเลือกเองในหน้า Create
|
||
|
||
---
|
||
|
||
### 3. Default Marketing Owner
|
||
|
||
Marketing Owner ต้อง default เป็นผู้สร้างเอกสาร
|
||
|
||
```text
|
||
marketingOwnerId = currentUser.id
|
||
```
|
||
|
||
ไม่ต้องให้ user เลือกตอน Create
|
||
|
||
---
|
||
|
||
### 4. Add Lead Source field
|
||
|
||
เพิ่ม field:
|
||
|
||
```text
|
||
Lead Source
|
||
```
|
||
|
||
ใช้เก็บที่มาของ Lead เช่น:
|
||
|
||
* Website
|
||
* Facebook
|
||
* Line OA
|
||
* Phone Call
|
||
* Walk-in
|
||
* Referral
|
||
* Existing Customer
|
||
* Exhibition
|
||
* Sales Visit
|
||
* Other
|
||
|
||
ควรใช้ master option / ms_options ถ้ามี foundation รองรับอยู่แล้ว
|
||
|
||
---
|
||
|
||
## Create vs Edit Behavior
|
||
|
||
### Create Lead
|
||
|
||
แสดงเฉพาะ field ที่จำเป็นสำหรับเปิด Lead ใหม่
|
||
|
||
ไม่แสดง:
|
||
|
||
* Lost Reason
|
||
* Status
|
||
* Marketing Owner
|
||
|
||
ระบบกำหนดให้อัตโนมัติ
|
||
|
||
---
|
||
|
||
### Edit Lead / Detail Lead
|
||
|
||
สามารถแสดง field เพิ่มเติมตามสถานะและ permission เช่น:
|
||
|
||
* Status
|
||
* Lost Reason เมื่อ status เป็น lost/closed lost
|
||
* Marketing Owner สำหรับ admin/manager ถ้าต้อง reassign
|
||
|
||
---
|
||
|
||
## Backend Rules
|
||
|
||
ฝั่ง API/service ต้อง enforce ด้วย ไม่พึ่ง UI อย่างเดียว:
|
||
|
||
* ถ้า create lead ไม่มี status → set `new_job`
|
||
* ถ้า create lead ไม่มี marketingOwnerId → set current user
|
||
* ห้าม user override marketingOwnerId ถ้าไม่มี permission
|
||
* Lost Reason ต้องไม่ required ตอน create
|
||
* Lead Source ควรถูก validate จาก master option
|
||
|
||
---
|
||
|
||
## Acceptance Criteria
|
||
|
||
* Create Lead ไม่แสดง Lost Reason
|
||
* Create Lead ไม่แสดง Status
|
||
* Create Lead ไม่แสดง Marketing Owner
|
||
* Lead ใหม่ถูกสร้างด้วย status `New Job`
|
||
* Marketing Owner เป็น user ที่สร้าง Lead
|
||
* มี field Lead Source
|
||
* Lead Source บันทึกได้ถูกต้อง
|
||
* Edit/Detail ยังรองรับ status/lost reason ตาม business rule
|
||
* `npm run typecheck`
|
||
* `npm run build`
|