Skip to main content

เมนูเว็บ (Menu Builder)

ภาพรวม

Domain นี้มีตารางเดียวคือ menu_builder เก็บนิยามเมนูเว็บ (web menu) ของแต่ละ LINE OA โดยโครงสร้างเมนูทั้งหมดถูกเก็บเป็น JSONB ในคอลัมน์ config และเปิดให้เข้าถึงแบบสาธารณะ ผ่าน public_token ตารางนี้ใช้ soft delete ผ่าน deleted_at

ตาราง menu_builder

ColumnTypeNullableDefaultคำอธิบาย
idSERIALNOnextval(...)Primary key
nameVARCHAR(255)NO-ชื่อเมนู
configJSONBNO-โครงสร้างและการตั้งค่าของเมนูทั้งหมด
public_tokenVARCHAR(255)YES-โทเคนสำหรับเปิดเมนูแบบสาธารณะ (unique)
line_oa_idINTEGERNO-LINE OA ที่เมนูนี้สังกัด (FK ไป line_oa.id)
statusCommonStatus (ENUM)NOactiveสถานะเมนู
created_byINTEGERNO-ผู้สร้าง (user id)
updated_byINTEGERYES-ผู้แก้ไขล่าสุด (user id)
created_atTIMESTAMPTZ(3)NOnow()วันเวลาที่สร้าง
updated_atTIMESTAMPTZ(3)NOnow()วันเวลาที่แก้ไขล่าสุด
deleted_atTIMESTAMPTZ(3)YES-วันเวลาที่ลบ (soft delete)

หมายเหตุ

  • line_oa_id เป็น FK ไป line_oa.id — เมนูทุกอันต้องผูกกับ LINE OA เสมอ (NOT NULL)
  • public_token มี unique constraint และใช้เป็น key ในการเปิดหน้าเมนูจากลิงก์สาธารณะ
  • มี index บน line_oa_id, status และ created_at เพื่อรองรับการ query รายการเมนู ของแต่ละ OA พร้อมกรองสถานะและเรียงตามวันที่สร้าง
  • การลบใช้ soft delete (deleted_at) ควบคู่กับ status — เรกคอร์ดจะยังคงอยู่ในตาราง