# Requirement Document
## เมนู: รายการซ่อมทั้งหมด (All Repair Records)

| | |
|---|---|
| **Document ID** | REQ-Honda-AllRepair-001 |
| **Version** | 1.0 |
| **Status** | DRAFT-AI |
| **Date** | 2026-05-26 |
| **Author** | SPA Team |

---

## 1. Overview

เพิ่มเมนูใหม่ "รายการซ่อมทั้งหมด" สำหรับให้ dealer กลุ่มที่ได้รับสิทธิ์สามารถค้นหาประวัติการซ่อมของลูกค้าข้ามทุก dealer ได้

---

## 2. Access Control

- เปิดให้เฉพาะ **dealer บางกลุ่ม** ที่ได้รับสิทธิ์
- ใช้ Role/Group ตามระบบปัจจุบัน (ไม่สร้าง Role ใหม่)
- dealer ที่ไม่ได้รับสิทธิ์จะไม่เห็นเมนูนี้

---

## 3. Search Section

### Input Fields

| Field | Type | Required |
|---|---|---|
| หมายเลขเครื่อง | Text | ต้องกรอกอย่างน้อย 1 field |
| เบอร์โทรลูกค้า | Text | ต้องกรอกอย่างน้อย 1 field |

> **หมายเหตุ:** ค้นหาได้ด้วย field ใด field หนึ่ง หรือทั้งสอง field พร้อมกัน

---

## 4. Business Logic

### 4.1 Search Flow

```
[ค้นด้วยหมายเลขเครื่อง]
├── มีงานซ่อม
│   └── แสดง Section 1 (ดึงจากข้อมูลงานซ่อม) + Section 2
└── ไม่มีงานซ่อม
    └── แสดง Section 1 (ดึงจากข้อมูลรับประกัน) + ไม่แสดง Section 2

[ค้นด้วยเบอร์โทร — ไม่ซ้ำ]
└── แสดง Section 1 + Section 2 (ใบซ่อมทั้งหมดของลูกค้านั้น)

[ค้นด้วยเบอร์โทร — ซ้ำ / พบหลายคน]
├── Section 1 แสดงรายชื่อลูกค้าทั้งหมดที่ตรงกัน
├── รอให้ผู้ใช้คลิกเลือกลูกค้า
└── Section 2 แสดงใบซ่อมของลูกค้าที่เลือก
```

### 4.2 Scope ของข้อมูลใบซ่อม

| Search Input | Scope ใบซ่อมที่แสดง |
|---|---|
| หมายเลขเครื่อง | เฉพาะหมายเลขเครื่องนั้น |
| เบอร์โทร | ทุกใบซ่อมของลูกค้านั้น (ข้ามทุก dealer) |

---

## 5. Display Sections

### Section 1 — ข้อมูลลูกค้า

แสดงเมื่อค้นหาเจอ (ทั้งกรณีมีและไม่มีงานซ่อม)

| Field | แหล่งข้อมูล |
|---|---|
| ชื่อลูกค้า | งานซ่อม / รับประกัน |
| เบอร์โทร | งานซ่อม / รับประกัน |
| ที่อยู่ | งานซ่อม / รับประกัน |

> **กรณีเบอร์ซ้ำ:** Section 1 แสดงรายชื่อลูกค้าทั้งหมดในรูปแบบ selectable list ก่อน จากนั้นจึงแสดงข้อมูลลูกค้าที่เลือก

### Section 2 — ตารางใบซ่อม

แสดงเสมอหลังจากค้นหาเจอลูกค้า / Default: **Expanded**

| # | คอลัมน์ | หมายเหตุ |
|---|---|---|
| 1 | เลขที่ใบซ่อม | มี Link กดเปิดหน้าใบซ่อมได้ |
| 2 | ประเภทงานซ่อม | |
| 3 | วันที่เข้าซ่อม | |
| 4 | ปัญหาจากการใช้งาน | |
| 5 | ค่าซ่อมรวม | |
| 6 | ชั่วโมงการใช้งาน | |
| 7 | Dealer Code | |
| 8 | Dealer ชื่อ | |
| 9 | วันที่ปิดใบซ่อม | |

> ข้อมูลรวมทุก dealer ในตารางเดียว ไม่แยก section ตาม dealer
> กรณีไม่พบข้อมูลใบซ่อม — แสดง Section 2 แต่แสดงข้อความ "ไม่พบข้อมูลงานซ่อม"

---

## 6. Edge Cases

| กรณี | Behavior |
|---|---|
| ค้นหาไม่เจอข้อมูลเลย | แสดง label ที่ตาราง "ไม่พบข้อมูล" ตามแบบเดิม|
| เบอร์โทรตรงกับหลายคน | แสดง list หรือ มีวิธีให้เลือกก่อนว่าจะดูของลูกค้ารายไหน |
| มีข้อมูลรับประกัน แต่ไม่มีงานซ่อม | แสดง Section 1 + Section 2 (ขึ้นว่า "ไม่พบข้อมูลงานซ่อม") |

---

## 7. Open Items

| # | ประเด็น | Owner | Due |
|---|---|---|---|
| 1 | Field ข้อมูลลูกค้าเพิ่มเติม (ที่อยู่ format, อื่นๆ)? | PM | - |

---

*[DRAFT-AI] — โปรด Review ก่อนใช้งานจริง*
