Flow: สร้างสินค้า/รุ่น (Device Product) · AD12.1
สร้างรุ่นสินค้า + ราคาต่อความจุ + เงินดาวน์ — ต่อกิจการ อ้างอิงตาราง: 04-device.md · ฟอร์ม node 1095:158862 · ตารางรายการ node 2324:276605 วันที่: 16 มิ.ย. 2026
Prerequisite (ต้องมีก่อนสร้างสินค้า)
- ยี่ห้อ
device.brands(custom/กิจการ) · เรทชำระdevice.payment_rates(+items) · ความจุdevice.capacities(ระดับระบบ) - ประเภท = enum
device.device_type(SMARTPHONE/TABLET/LAPTOP) ไม่ต้องสร้าง
Flow สร้างสินค้า
flowchart TD A([แอดมิน: เพิ่มรายการสินค้า]) --> B[เลือกยี่ห้อ brand_id] B --> C[เลือกประเภท device_type] C --> D[ตั้งชื่อรุ่น name - unique/กิจการ] D --> E[เลือกความจุ - ได้หลายอัน] E --> F[กำหนดสี - text array ใส่ชื่ออะไรก็ได้] F --> G[เลือกเรทชำระ 1 ตัว - ใช้ทุกความจุ] G --> H[ต่อความจุ: ตั้งราคา + เงินดาวน์] H --> I{กรอกราคา} I --> J[ราคามือหนึ่ง / มือสอง / เครื่องนอก<br/>บังคับมือหนึ่งหรือมือสอง อย่างน้อย 1] I --> K[เงินดาวน์ % หลายอัตรา - integer array] J --> L[[ยืนยัน]] K --> L L --> M[สร้าง device.products<br/>+ device.product_capacities ต่อความจุ] M --> N([สินค้าพร้อมใช้คำนวณราคา SH4])
Map → ตาราง
| Step | ตาราง/คอลัมน์ |
|---|---|
| ยี่ห้อ/ประเภท/ชื่อ/สี/เรท | device.products (brand_id, device_type, name, colors text[], payment_rate_id) |
| ราคาต่อความจุ | device.product_capacities (capacity_id, price_new/used/foreign) |
| เงินดาวน์ (% หลายอัตรา) | device.product_capacities.down_payment_percents integer[] |
| ความจุที่เลือก (หลายอัน) | 1 product → หลาย product_capacities (M:N กับ capacities) |
กฎ/Constraint
- ชื่อรุ่น unique ต่อกิจการ
- สี =
text[](ไม่มี config กลาง ·cardinality ≥ 1) - เรทชำระ 1 ตัว/รุ่น → ใช้กับทุกความจุ
- แต่ละความจุ: บังคับกรอก
price_newหรือprice_usedอย่างน้อย 1 · ราคาเป็นสตางค์ (ฟอร์มกรอกบาท) - เงินดาวน์
integer[]เป็น % เช่น {10,20,30} ·cardinality ≥ 1 - ลบ brand/เรท/ความจุ ไม่ได้ถ้าถูกใช้ในสินค้า (FK restrict)
⚠️ Snapshot ตอนทำสัญญา (Domain 5)
ราคา/เรท/ตัวคูณ/ค่าคอม/เงินดาวน์ ที่เลือกตอนสร้างสัญญา จะถูก snapshot เก็บในสัญญา — ราคาสินค้าที่แก้ภายหลังจะไม่กระทบสัญญาเดิม