LINE Official Account (Channel)
ภาพรวม
Domain นี้มี 2 ตาราง: line_oa เก็บข้อมูลการเชื่อมต่อ LINE Official Account แต่ละ channel
(credential, webhook, การตั้งค่า sync ผู้ติดตาม, GA tracking, การจัดลำดับการตอบข้อความ) และ
line_oa_app เก็บการเปิด/ปิดและ config ของแอปเสริมรายองค์กร
ตาราง line_oa
| Column | Type | Nullable | Default | คำอธิบาย |
|---|---|---|---|---|
id | INTEGER | NOT NULL | nextval (serial) | Primary key ของ LINE OA channel |
organization_id | INTEGER | NOT NULL | – | องค์กรเจ้าของ channel (FK ไป organization.id) |
line_oa_name | TEXT | NOT NULL | – | ชื่อ LINE OA ที่ใช้แสดงใน CMS |
line_oa_hash | TEXT | NULL | – | hash สำหรับอ้างถึง OA แบบสาธารณะ (ใช้ใน public URL) |
channel_access_token | TEXT | NOT NULL | – | Channel access token สำหรับเรียก LINE Messaging API |
channel_id | TEXT | NOT NULL | – | Channel ID จาก LINE Developers |
channel_secret_id | TEXT | NOT NULL | – | Channel secret ใช้ตรวจลายเซ็น webhook |
channel_name | TEXT | NOT NULL | – | ชื่อ channel ตามที่ตั้งไว้ใน LINE Developers |
bot_basic_id | TEXT | NOT NULL | – | Basic ID ของบอท (รูปแบบ @xxxxxxx) |
premium_id | TEXT | NULL | – | Premium ID ของ OA (ถ้าซื้อ premium ID ไว้) |
sync_follower_status | SyncFollowerStatus (enum) | NOT NULL | no_action | สถานะการ sync รายชื่อผู้ติดตาม: no_action, active, processing, completed, failed |
sync_follower_logs | TEXT | NULL | – | log/ข้อความผลลัพธ์จากการ sync ผู้ติดตามครั้งล่าสุด |
last_sync_followers_date | TIMESTAMPTZ(3) | NULL | – | วันเวลาที่ sync ผู้ติดตามสำเร็จครั้งล่าสุด |
webhook_id | TEXT | NOT NULL | – | ตัวระบุ webhook ที่ระบบสร้างให้ ใช้เป็น path ของ webhook URL |
forward_webhook_url | TEXT | NULL | '' | URL ปลายทางสำหรับ forward event ต่อไปยังระบบภายนอก (ว่าง = ไม่ forward) |
cover | TEXT | NOT NULL | '' | URL/path ของรูปหน้าปก OA |
line_login_info | JSONB | NULL | – | ข้อมูล LINE Login channel ที่ผูกกับ OA นี้ |
audience_refresh_enabled | BOOLEAN | NOT NULL | false | เปิด/ปิดการรีเฟรชสมาชิก audience อัตโนมัติ |
audience_refresh_interval | INTEGER | NOT NULL | 60 | ระยะห่างของการรีเฟรช audience (นาที) |
ga_tracking_enabled | BOOLEAN | NOT NULL | false | เปิด/ปิดการแนบพารามิเตอร์ติดตามผลไปยัง Google Analytics |
ga_identity_param | VARCHAR(50) | NOT NULL | 'lid' | ชื่อ query parameter ที่ใช้ส่ง identity ไปยัง GA |
message_handling_config | JSONB | NOT NULL | {"priority": "auto_response_only"} | การตั้งค่าลำดับความสำคัญของการตอบข้อความขาเข้า |
status | CommonStatus (enum) | NOT NULL | – | สถานะของ channel (active, inactive, delete ฯลฯ) |
created_date | TIMESTAMPTZ(3) | NOT NULL | CURRENT_TIMESTAMP | วันที่สร้าง |
created_by | INTEGER | NOT NULL | 0 | user id ของผู้สร้าง |
updated_date | TIMESTAMPTZ(3) | NULL | – | วันที่แก้ไขล่าสุด (Prisma @updatedAt) |
updated_by | INTEGER | NULL | 0 | user id ของผู้แก้ไขล่าสุด |
deleted_date | TIMESTAMPTZ(3) | NULL | – | วันที่ลบแบบ soft delete |
ตาราง line_oa_app
| Column | Type | Nullable | Default | คำอธิบาย |
|---|---|---|---|---|
id | INTEGER | NOT NULL | nextval (serial) | Primary key |
organization_id | INTEGER | NOT NULL | – | องค์กรที่เปิดใช้แอปนี้ |
app_id | VARCHAR(50) | NOT NULL | – | รหัสแอปเสริม (ตัวระบุแบบสตริง) |
enabled | BOOLEAN | NOT NULL | false | เปิดใช้งานแอปนี้หรือไม่ |
config | JSONB | NULL | – | ค่า config เฉพาะของแอปนั้นๆ |
created_by | INTEGER | NULL | – | user id ของผู้สร้าง |
created_date | TIMESTAMPTZ(3) | NOT NULL | CURRENT_TIMESTAMP | วันที่สร้าง |
updated_date | TIMESTAMPTZ(3) | NULL | – | วันที่แก้ไขล่าสุด |
หมายเหตุ
- Foreign key:
line_oa.organization_id->organization.idตารางline_oaถูกอ้างถึงด้วยline_oa_idจากตารางจำนวนมาก เช่นline_user,campaign,rich_message,rich_menu,tracking_log,template_message,tracking_token,form_builder,menu_builder,attribute_master,content_page,content_category,content_link,friend_track_campaign - Index ของ
line_oa:(webhook_id, status, organization_id),(line_oa_hash, status, organization_id)และdeleted_date— สองตัวแรกรองรับการค้นหา channel ตอนรับ webhook และตอนเปิด public URL line_oa_appผูกกับองค์กร ไม่ได้ผูกกับ channel — ไม่มีคอลัมน์line_oa_idแม้ชื่อตาราง จะขึ้นต้นด้วยline_oaโดยมี unique constraint(organization_id, app_id)และ index บนorganization_idmessage_handling_configเป็น JSON object ที่มี keypriorityค่า default คือauto_response_only- คอลัมน์
channel_access_tokenและchannel_secret_idเป็นข้อมูลลับ ไม่ควร log หรือส่งออกทาง API ที่เปิดสาธารณะ - ไม่มีตาราง mbox แยกใน domain นี้ — placeholder เดิมของหน้านี้กล่าวถึง mbox ไว้ แต่ในสคีมาจริง
มีเพียง
line_oaและline_oa_app