หมวดหมู่คอนเทนต์และลิงก์รวม
ภาพรวม
ส่วนนี้คือกลไกจัดหมวดหมู่ของระบบคอนเทนต์ ประกอบด้วยหมวดหมู่หลัก (content_category)
หมวดหมู่ย่อยที่ซ้อนกันได้หลายชั้น (content_subcategory) และ ลิงก์รวม
(content_link)
ลิงก์รวมคือลิงก์เดียวที่เมื่อเปิดจะแสดงรายการบทความตามเงื่อนไขที่ตั้งไว้ เหมาะกับการนำไป แปะในปุ่ม rich menu เช่นปุ่ม "โปรโมชันเดือนนี้" ที่เนื้อหาเปลี่ยนตามช่วงเวลาโดยไม่ต้อง แก้เมนู
โครงสร้างข้อมูลหลัก
content_category (model ContentCategory)
uuid(unique),nameและslugซึ่ง unique ร่วมกันเป็น(line_oa_id, slug)description,thumbnail,sort_orderstatus(enumContentCategoryStatus) —active/inactive/delete- FK
line_oa_id→line_oa.idพร้อม soft delete ผ่านdeleted_date - ความสัมพันธ์
1 : Nกับcontent_subcategory,content_pageและcontent_link
content_subcategory (model ContentSubcategory)
category_id→content_category.id(ON DELETE CASCADE) และ unique(category_id, slug)- รองรับลำดับชั้นหลายระดับผ่าน
parent_id,content_subcategory_idและlevel(default 2) - ฟิลด์อื่นเหมือนกับหมวดหมู่หลัก ได้แก่
uuid,name,slug,thumbnail,sort_order,status
content_link (model ContentLink)
ลิงก์รวมที่กรองบทความตามเงื่อนไข
tokenVARCHAR(64) unique — คีย์ที่ใช้ใน URL สาธารณะ และuuidunique- เงื่อนไขการกรอง
category_id,subcategory_id,published_date_from,published_date_toและaudience_idsJSONB name,description,statusและclick_count(BIGINT)- FK
line_oa_id→line_oa.idพร้อม soft deletedeleted_date/deleted_by - index บน
(token),(line_oa_id),(status),(category_id),(subcategory_id)
ไฟล์ที่เกี่ยวข้อง
prisma/schema.prisma:1197— modelContentCategoryprisma/schema.prisma:1231— modelContentSubcategoryprisma/schema.prisma:1273— modelContentLinkschema-dumps/2026-07-24/schema.sql:1247,:1564,:1290
จุดเชื่อมต่อกับ Service อื่น
- cms-api-go — จัดการหมวดหมู่ รวมถึงการลากจัดลำดับผ่าน
sort_orderและสร้างลิงก์รวม - client-api-go — หน้ารายการบทความสาธารณะที่เปิดจาก
content_link.tokenโดยกรองบทความตามเงื่อนไข ตรวจสอบaudience_idsแล้วเพิ่มค่าclick_count
โดเมนที่เกี่ยวข้อง: หน้าคอนเทนต์, Audience