Super Admin — เปิด/ปิด Module Add-on ต่อ tenant

Override โมดูลให้ลูกค้า: comp, trial, upsell. ผ่านหน้า Governance

4 นาที·อัปเดต 2026-05-24

ใครเข้าหน้านี้ได้

เฉพาะผู้ใช้ที่ systemRole === "SUPER_ADMIN" (HexaHealth staff). URL = /super-admin/tenants/[tenantId]

Module Add-ons คืออะไร

ลูกค้าได้ module จาก 3 layer:

  1. Plan tier base — ทุกแผนรวมโมดูลพื้นฐาน (เช่น PRO ได้ AI Assistant)
  2. Clinic type base — clinic type DENTAL ได้ odontogram + dental_imaging ฟรี
  3. Per-tenant add-on — super admin เปิดเฉพาะ tenant (ฟรี comp, trial, paid upsell)

หน้านี้คุม layer 3

เปิด add-on ให้ tenant

  1. /super-admin/tenants → กดเลือก tenant
  2. ที่ section Module Add-ons — ตารางรายโมดูลทั้งหมด พร้อม chip:

- แผน (blue) — รวมจาก plan tier - คลีนิก (violet) — รวมจาก clinic type - Add-on ใช้งานอยู่ (emerald) — super admin เปิดให้ - ปิดอยู่ · กดเพื่อเปิด (gray) — ยังไม่เปิด

  1. กดที่การ์ดโมดูล → toggle on → tenant ใช้ได้ทันที (cache invalidate)

ยกเลิก add-on

กดที่การ์ดสีเขียว "Add-on ใช้งานอยู่" → toggle off. ไม่มีกล่องยืนยัน (one-click toggle)

ใส่ expiry

ตอนนี้ default = perpetual (ไม่หมดอายุ). ถ้าต้องการ trial 30 วัน:

  • เปิด tRPC mutation ตรง (super-admin.setTenantModuleAddon) — รองรับ expiresAt แล้ว
  • UI ยังไม่ expose — กำลังพัฒนา

ผลกระทบทันที

  • Cache canUseModule invalidate
  • ฝั่ง tenant: refresh page เห็นเมนู / tab โผล่ภายใน 60 วินาที (TTL ของ React.cache)
  • เห็นใน audit log: super_admin.module_addon.toggle

Use case ที่พบ

  • Comp ลูกค้า VIP — เปิด ENTERPRISE modules ให้ STARTER tenant ที่เป็น sales lead
  • Trial 14 วัน — เปิด AI Scribe ให้ทดลอง (ตั้ง expiresAt ผ่าน DB หรือ API)
  • Migration ครั้ง onboard — เปิด eclaim + fhir ให้ลูกค้าใหม่ระหว่าง integrate

ระวัง

  • เปิดโมดูลที่คิดเงิน (เช่น AI Scribe Pro tier) ผ่าน Module Add-on ไม่คิดเงิน — ต้องไป create AddOnSubscription แยกถ้าต้องการเก็บเงิน
  • toggle off กลางรอบ → user ที่กำลังใช้ feature นั้น flash error 403 — แจ้งล่วงหน้าทาง email/Slack

บทความที่เกี่ยวข้อง