nawin-resort-khaokho

HANDOFF — Nawin Resort Khaokho

อัปเดตล่าสุด: 2026-08-08

สถานะปัจจุบัน (v1 — เสร็จแล้ว)

สิ่งที่ทำเสร็จแล้วทั้งหมด (ไม่ต้องทำอะไรเพิ่ม)

สิ่งที่บอสตองต้องทำเอง (บล็อกไม่ได้ เพราะต้องเป็นเจ้าของบัญชี)

ผูกบัญชี LINE ของพนักงานแต่ละคน (สำหรับ staff-app)

staff-app ไม่มีหน้า login แยก — ระบุตัวพนักงานจาก LINE account ที่ผูกไว้ในตาราง profiles โดยตรง ขั้นตอน:

  1. ให้พนักงานเปิด https://khaokho.nawingroup.com/staff-app/ ผ่าน LINE (ใน LINE app จริง ไม่ใช่เบราว์เซอร์ปกติ — ต้องเปิดจากลิงก์ที่ส่งผ่านแชท LINE หรือปุ่มเมนู richmenu ของ OA)
  2. รอบแรกจะขึ้นข้อความ “บัญชี LINE นี้ยังไม่ได้ผูกกับพนักงาน” พร้อม LINE User ID ให้คัดลอก
  3. ให้พนักงานส่ง LINE User ID นั้นมาให้บอสตอง (หรือแคปหน้าจอ)
  4. เข้า Dashboard → ยูนิต & รายงาน → เลื่อนลงหา “พนักงาน (ผูกบัญชี LINE)” → วาง LINE User ID ลงช่องของพนักงานคนนั้น → กด Enter หรือคลิกออกจากช่อง (บันทึกอัตโนมัติ)
  5. ให้พนักงานเปิด staff-app ใหม่อีกครั้ง — คราวนี้จะเข้าหน้ากรอกจองได้เลย ไม่ต้อง login ซ้ำอีก

ทุกการจองที่พนักงานคีย์ผ่าน staff-app จะถูกบันทึก “จองโดย” อัตโนมัติ (เห็นในหน้า “การจอง” + นับรวมในตาราง “สรุปตามพนักงาน (สำหรับคิดคอมมิชชั่น)” ที่หน้า “ยูนิต & รายงาน” เหมือนการจองที่คีย์ผ่าน Dashboard ทุกประการ)

หมายเหตุเรื่อง internal_functions_secret: สุ่มค่าไว้แล้วตอน setup (SECURITY DEFINER trigger ↔ line-notify function ใช้ยืนยันกัน) ไม่ต้องแก้อะไรเพิ่ม เว้นแต่ต้องการหมุนค่าใหม่ (rotate) — ทำผ่าน vault.update_secret เหมือน secret อื่นๆ แล้วอย่าลืมว่าไม่มีที่อื่นอ้างอิงค่านี้นอกจาก DB trigger เอง

ตั้งค่า PromptPay สำหรับรับชำระเงิน

ตอนนี้ระบบสร้าง QR PromptPay ให้อัตโนมัติในแอปแขก แต่ต้องใส่เลข PromptPay จริงก่อน:

  1. เข้า Dashboard → ยูนิต & รายงาน → หัวข้อ “ตั้งค่าการชำระเงิน (PromptPay)” (อยู่บนสุดของหน้า)
  2. ใส่ PromptPay ID (เบอร์โทร 10 หลัก เช่น 0891234567 หรือเลขบัตรประชาชน 13 หลักของบัญชีที่จะรับเงิน) และ ชื่อบัญชี ที่จะโชว์ให้ลูกค้าเห็น
  3. กดบันทึก — ลูกค้าที่จองใหม่จะเห็น QR จริงทันที (ก่อนตั้งค่าจะเห็นข้อความสำรองแทน)
  4. ทดสอบสแกน QR ด้วยแอปธนาคารจริงก่อนเปิดใช้งานจริง เพื่อความชัวร์ว่าสแกนได้ถูกต้อง (ระบบ generate ตาม spec มาตรฐาน แต่ควรทดสอบยิงจริงสักครั้ง)

ตรวจสอบสลิปที่ลูกค้าอัปโหลด

เข้า Dashboard → เมนู “ชำระเงิน” — จะเห็นรายการสลิปที่รอตรวจสอบทั้งหมด (พนักงานทุกคนเห็นได้ ไม่ใช่แค่ owner) คลิกรูปเพื่อดูขยาย กด “ยืนยันการชำระเงิน” จะเปลี่ยนสถานะการจองเป็น “ยืนยันแล้ว” ทันทีและส่ง LINE แจ้งเตือนลูกค้าอัตโนมัติ หรือกด “ปฏิเสธสลิป” ถ้าสลิปไม่ถูกต้อง (ลูกค้าจะอัปโหลดใหม่ได้)

อัปโหลดรูปภาพยูนิต

เข้า Dashboard → ยูนิต & รายงาน → เลื่อนลงหัวข้อ “รูปภาพยูนิต” อัปโหลดรูปจริงของแต่ละห้อง/เต็นท์ได้เลย (ไม่จำกัดจำนวน) รูปจะโชว์ให้ลูกค้าดูตอนเลือกยูนิตในหน้าจองทันที — ตอนนี้ยังไม่มีรูปเลย แนะนำอัปโหลดก่อนเริ่มรับจองจริงจัง

ระบบยกเลิกอัตโนมัติ 24 ชม. (ทำงานอยู่แล้ว ไม่ต้องทำอะไร)

มี cron job รันทุก 15 นาที ยกเลิกการจองที่ยังเป็น “รอยืนยัน” (ลูกค้าจองเองผ่านแอป ยังไม่จ่ายเงิน) เกิน 24 ชม. อัตโนมัติ — การจองที่พนักงานคีย์ผ่าน Dashboard/staff-app เป็น “ยืนยันแล้ว” ทันทีอยู่แล้วไม่โดนยกเลิก

ป้องกันมิจฉาชีพ — สิ่งที่ควรทำเพิ่ม

ระบบตั้งค่าไว้ให้แล้วว่า “จะไม่มีการขอให้โอนเงินผ่านแชท” (ขึ้นแบนเนอร์เตือนในแอปทุกครั้งก่อนโชว์ QR) แต่แนะนำเพิ่ม:

หมายเหตุสถาปัตยกรรม