Skip to main content

องค์กรและแพ็กเกจการใช้งาน

ภาพรวม

Domain นี้มีตารางเดียวคือ organization ซึ่งเป็นหน่วยสูงสุดของการแบ่งข้อมูล (tenant) ทุกตารางหลัก ในระบบจะอ้างถึง organization_id เพื่อแยกข้อมูลระหว่างลูกค้า โควตาการใช้งาน (plan/quota) ไม่ได้แยก เป็นตารางต่างหาก แต่เก็บอยู่ในคอลัมน์ max_channel และ plan_limits (JSONB) ของตารางนี้เอง

ตาราง organization

ColumnTypeNullableDefaultคำอธิบาย
idINTEGERNOT NULLnextval (serial)Primary key ขององค์กร
logoTEXTNULLURL/path ของโลโก้องค์กร
nameTEXTNOT NULLชื่อองค์กร
statusCommonStatus (enum)NOT NULLสถานะองค์กร (active, inactive, delete ฯลฯ)
max_channelINTEGERNOT NULL5จำนวน LINE OA (channel) สูงสุดที่องค์กรนี้สร้างได้
created_dateTIMESTAMPTZ(3)NOT NULLCURRENT_TIMESTAMPวันที่สร้าง
created_byINTEGERNOT NULL0user id ของผู้สร้าง
updated_dateTIMESTAMPTZ(3)NULLวันที่แก้ไขล่าสุด (Prisma @updatedAt)
updated_byINTEGERNULL0user id ของผู้แก้ไขล่าสุด
deleted_dateTIMESTAMPTZ(3)NULLวันที่ลบแบบ soft delete (NULL = ยังไม่ถูกลบ)
plan_limitsJSONBNULLโควตาเฉพาะองค์กร (override ค่า default ของแพลตฟอร์ม) NULL = ใช้ค่า default

หมายเหตุ

  • plan_limits เป็นคอลัมน์ ไม่ใช่ตาราง — ถูกเพิ่มภายหลังผ่าน manual SQL (manual-sql/7.plan_limits.sql) ด้วยคำสั่ง ALTER TABLE organization ADD COLUMN IF NOT EXISTS plan_limits JSONB จึงไม่ปรากฏใน schema.prisma
  • โครงสร้างของ plan_limits เป็น JSON object ที่มี key ดังนี้ (ตัวอย่างค่าขององค์กรแพลตฟอร์ม 1Moby ที่ id = 1): {"maxSegments":-1,"maxActiveWorkflows":-1,"maxTemplates":-1,"maxAttributes":-1,"autoRefresh":true} โดยค่า -1 หมายถึงไม่จำกัด (unlimited) ส่วนค่า default ของแพลตฟอร์มอยู่ในโค้ด cms-api ที่ src/plan-limits/plan-limits.constant.ts
  • โควตาจำนวน channel ไม่ได้อยู่ใน plan_limits แต่ยังใช้คอลัมน์ max_channel ตามเดิม
  • มี index บน deleted_date เพื่อรองรับการ query แบบตัดรายการที่ถูก soft delete ออก
  • ตารางนี้ถูกอ้างถึงด้วย foreign key organization_id จากตาราง user, line_oa, campaign, tracking_log, friend_track_campaign และ organization_module
  • ไม่มีตาราง admin_plan และ admin_audit_log อยู่ในระบบ — ตรวจสอบแล้วทั้งใน schema.prisma, pg_dump ของ preprod และ manual SQL ทั้งหมด