Skip to main content

Rich Menu

ภาพรวม

Domain นี้มี 4 ตาราง คือ rich_menu (นิยาม rich menu ที่ใช้งานอยู่), rich_menu_action (ปุ่ม/พื้นที่กดของแต่ละ rich menu), rich_menu_member (รายชื่อ LINE user ที่ผูกกับ rich menu นั้น) และ rich_menu_archive (สำเนา rich menu ที่ถูกแทนที่หรือหมดอายุ มีโครงสร้างคอลัมน์เหมือน rich_menu ทุกประการ)

ตาราง rich_menu

ColumnTypeNullableDefaultคำอธิบาย
idSERIAL (INTEGER)NOnextval(...)รหัสอ้างอิงหลักของ rich menu
line_oa_idINTEGERNO-รหัส LINE OA เจ้าของ rich menu (FK ไป line_oa.id)
line_rich_menu_idTEXTYES-รหัส rich menu ฝั่ง LINE Platform ที่ได้หลังสร้างสำเร็จ
thumbnailTEXTNO-URL รูปภาพพื้นหลัง/ภาพย่อของ rich menu
audience_idINTEGERYES-กลุ่มเป้าหมายที่จะเห็น rich menu นี้ (FK ไป audience.id)
parent_idINTEGERYES-รหัส rich menu แม่ กรณีเป็นเมนูย่อยที่สลับมาจากเมนูหลัก
titleTEXTNO-ชื่อ rich menu
custom_labelTEXTYES-ข้อความบนแถบเปิด/ปิดเมนู (chat bar text)
layoutINTEGERNO-รหัสรูปแบบการแบ่งพื้นที่ของเมนู
status"CommonStatus"NOprocessingสถานะของ rich menu (processing, active, inactive, failed, ...)
type"RichMenuType"NOcustomประเภทเมนู: guest, member, custom, default, switch
complete_link_userBOOLEANNO-ผูก rich menu เข้ากับผู้ใช้ทุกคนในกลุ่มครบแล้วหรือยัง
totalINTEGERYES0จำนวนผู้ใช้ที่ผูกกับ rich menu นี้
start_dateTIMESTAMPTZ(3)YES-วันเวลาที่เริ่มแสดงเมนู
end_dateTIMESTAMPTZ(3)YES-วันเวลาที่หยุดแสดงเมนู
created_dateTIMESTAMPTZ(3)NOnow()วันเวลาที่สร้างรายการ
created_byINTEGERNO0รหัสผู้ใช้ที่สร้างรายการ
updated_dateTIMESTAMPTZ(3)YES-วันเวลาที่แก้ไขล่าสุด (อัปเดตอัตโนมัติ)
updated_byINTEGERYES0รหัสผู้ใช้ที่แก้ไขล่าสุด
deleted_dateTIMESTAMPTZ(3)YES-วันเวลาที่ลบแบบ soft delete
container_originalJSONBYES-โครงสร้าง rich menu ต้นฉบับที่ใช้ส่งให้ LINE Platform
reasonTEXTYES''เหตุผลประกอบสถานะ เช่น สาเหตุที่สร้างไม่สำเร็จ
rich_menu_actionsJSONBYES-สำเนา action ทั้งหมดในรูปแบบ JSON (ใช้คู่กับตาราง rich_menu_action)
template_trackingJSONBYES-ข้อมูล mapping สำหรับติดตามการกดในแต่ละพื้นที่ของเมนู
is_for_automationBOOLEANNOfalseเมนูนี้ถูกสร้างขึ้นเพื่อใช้ใน automation/workflow หรือไม่

ตาราง rich_menu_action

ColumnTypeNullableDefaultคำอธิบาย
idSERIAL (INTEGER)NOnextval(...)รหัสอ้างอิงหลักของ action
rich_menu_idINTEGERNO-รหัส rich menu เจ้าของ action (FK ไป rich_menu.id)
indexINTEGERNO-ลำดับพื้นที่กดภายในเมนู
type"RichMenuActionType"NO-ชนิด action: message, uri, tel, postback, datetimepicker, camera, cameraroll, location, richmenu, no_action, alias
labelTEXTYES-ป้ายกำกับของพื้นที่กด
linkTEXTYES-ปลายทางของ action เช่น URL, ข้อความ, หรือ postback data
tracking_keyTEXTNO-คีย์สำหรับติดตามการกดพื้นที่นี้
boundaryJSONBYES-พิกัดขอบเขตพื้นที่กดบนรูปภาพ (x, y, width, height)
rich_menu_aliasINTEGERYES-รหัส rich menu ปลายทางกรณี action เป็นการสลับเมนู
rich_menu_archive_idINTEGERYES-รหัส rich menu archive เจ้าของ action (FK ไป rich_menu_archive.id)
is_trackingBOOLEANNOfalseเปิดการติดตามการกดพื้นที่นี้หรือไม่

ตาราง rich_menu_member

ColumnTypeNullableDefaultคำอธิบาย
idSERIAL (INTEGER)NOnextval(...)รหัสอ้างอิงหลักของรายการสมาชิก
rich_menu_idINTEGERNO-รหัส rich menu ที่ผูกกับสมาชิกกลุ่มนี้ (FK ไป rich_menu.id)
line_user_idJSONBNO-รายการ LINE user ID ที่ผูกกับ rich menu (เก็บเป็น array ใน JSON เพื่อผูกครั้งละหลายคน)
rich_menu_archive_idINTEGERYES-รหัส rich menu archive ที่เกี่ยวข้อง (FK ไป rich_menu_archive.id)

ตาราง rich_menu_archive

โครงสร้างคอลัมน์เหมือน rich_menu ทุกคอลัมน์ ใช้เก็บสำเนา rich menu ที่ถูกแทนที่หรือสิ้นสุดการใช้งาน เพื่อให้ยังอ้างอิงย้อนหลังจาก tracking_log ได้

ColumnTypeNullableDefaultคำอธิบาย
idSERIAL (INTEGER)NOnextval(...)รหัสอ้างอิงหลักของ rich menu ที่เก็บถาวร
line_oa_idINTEGERNO-รหัส LINE OA เจ้าของ rich menu (FK ไป line_oa.id)
line_rich_menu_idTEXTYES-รหัส rich menu ฝั่ง LINE Platform
thumbnailTEXTNO-URL รูปภาพพื้นหลัง/ภาพย่อของ rich menu
audience_idINTEGERYES-กลุ่มเป้าหมายที่เห็น rich menu นี้ (FK ไป audience.id)
parent_idINTEGERYES-รหัส rich menu แม่ กรณีเป็นเมนูย่อย
titleTEXTNO-ชื่อ rich menu
custom_labelTEXTYES-ข้อความบนแถบเปิด/ปิดเมนู
layoutINTEGERNO-รหัสรูปแบบการแบ่งพื้นที่ของเมนู
status"CommonStatus"NOprocessingสถานะของ rich menu ณ เวลาที่เก็บถาวร
type"RichMenuType"NOcustomประเภทเมนู: guest, member, custom, default, switch
complete_link_userBOOLEANNO-ผูก rich menu เข้ากับผู้ใช้ครบแล้วหรือยัง
totalINTEGERYES0จำนวนผู้ใช้ที่เคยผูกกับ rich menu นี้
start_dateTIMESTAMPTZ(3)YES-วันเวลาที่เริ่มแสดงเมนู
end_dateTIMESTAMPTZ(3)YES-วันเวลาที่หยุดแสดงเมนู
created_dateTIMESTAMPTZ(3)NOnow()วันเวลาที่สร้างรายการ
created_byINTEGERNO0รหัสผู้ใช้ที่สร้างรายการ
updated_dateTIMESTAMPTZ(3)YES-วันเวลาที่แก้ไขล่าสุด (อัปเดตอัตโนมัติ)
updated_byINTEGERYES0รหัสผู้ใช้ที่แก้ไขล่าสุด
deleted_dateTIMESTAMPTZ(3)YES-วันเวลาที่ลบแบบ soft delete
container_originalJSONBYES-โครงสร้าง rich menu ต้นฉบับที่ส่งให้ LINE Platform
reasonTEXTYES''เหตุผลประกอบสถานะ
rich_menu_actionsJSONBYES-สำเนา action ทั้งหมดในรูปแบบ JSON
template_trackingJSONBYES-ข้อมูล mapping สำหรับติดตามการกดในแต่ละพื้นที่ของเมนู
is_for_automationBOOLEANNOfalseเมนูนี้ถูกสร้างขึ้นเพื่อใช้ใน automation/workflow หรือไม่

หมายเหตุ

  • rich_menu_action และ rich_menu_member มี FK ได้ทั้งไปยัง rich_menu.id (บังคับ) และ rich_menu_archive.id (ไม่บังคับ) จึงใช้ตารางเดียวกันรองรับทั้งเมนูที่ใช้งานอยู่และเมนูที่เก็บถาวร
  • rich_menu และ rich_menu_archive ต่างมี FK ไปยัง line_oa.id และ audience.id และถูกอ้างอิงกลับจาก tracking_log.rich_menu_id / tracking_log.rich_menu_archive_id
  • parent_id และ rich_menu_alias ไม่ได้ประกาศเป็น FK constraint ใน schema (อ้างถึง rich_menu.id เชิงตรรกะ) ใช้สำหรับเมนูแบบหลายชั้นที่สลับไปมาได้
  • Index ของ rich_menu และ rich_menu_archive: line_oa_id, deleted_date
  • rich_menu_action และ rich_menu_member ไม่มีคอลัมน์ audit (created/updated/deleted) เพราะ จัดการวงจรชีวิตตามตารางแม่