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:
- Plan tier base — ทุกแผนรวมโมดูลพื้นฐาน (เช่น PRO ได้ AI Assistant)
- Clinic type base — clinic type DENTAL ได้
odontogram+dental_imagingฟรี - Per-tenant add-on — super admin เปิดเฉพาะ tenant (ฟรี comp, trial, paid upsell)
หน้านี้คุม layer 3
เปิด add-on ให้ tenant
/super-admin/tenants→ กดเลือก tenant- ที่ section Module Add-ons — ตารางรายโมดูลทั้งหมด พร้อม chip:
- แผน (blue) — รวมจาก plan tier - คลีนิก (violet) — รวมจาก clinic type - Add-on ใช้งานอยู่ (emerald) — super admin เปิดให้ - ปิดอยู่ · กดเพื่อเปิด (gray) — ยังไม่เปิด
- กดที่การ์ดโมดูล → 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
canUseModuleinvalidate - ฝั่ง 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