Property Content Management
Dynamic Hotel Welcome Screens & Subscription-Tied Entitlements
Pengelolaan materi tayangan hotel (video sambutan kamar, menu amenities digital, banner promo) yang divalidasi dinamis terhadap paket kontrak aktif.
Diagram Alur Data & Arsitektur Sistem
Visual InteraktifAlur Entitlement Konten TV Terikat Kontrak
Memastikan fitur branding hotel sesuai dengan paket kontrak aktif
Property Manager
Update Template Konten
Feature Guard
Check Contract Features
MongoDB Contents
Upsert Template JSON
Redis / CDN Cache
Invalidate TV Template
In-Room STB TV
Display Welcome Screen
Problem & Latar Belakang Kebutuhan
Setiap properti memiliki identitas merek sendiri. Namun tidak semua properti berhak menggunakan fitur premium (seperti custom video branding 4K atau direktori room service interaktif) jika paket kontrak yang disepakati hanya paket Silver standar. Hak kelola konten harus dikunci secara otomatis berdasarkan active subscription features.
Implementasi Rekayasa Backend NestJS
Koleksi property_contents di MongoDB menyimpan template dan aset visual tiap properti secara terpisah. SubscriptionFeatureGuard memeriksa array features pada sub-dokumen subscription properti sebelum mengizinkan Manager menyimpan perubahan template. Admin IPTV juga dapat mengelola seluruh konten properti terdaftar untuk keperluan asistensi teknis.
Aspek Model Database MongoDB
Menggunakan skema fleksibel MongoDB untuk menyimpan payload JSON layout TV: { welcomeGreeting: string, videoUrl: string, diningMenuEnabled: boolean, tickers: string[] }. Perubahan layout tidak memerlukan migrasi DDL tabel.
Keamanan, Idempotensi & Kepatuhan SLA
Validasi entitlement di level backend memastikan klien frontend tidak dapat melakukan bypass pembatasan UI untuk mengaktifkan fitur di luar kontrak.
// SubscriptionFeatureGuard: Pengecekan Fitur Terikat Kontrak
@Injectable()
export class SubscriptionFeatureGuard implements CanActivate {
constructor(private readonly reflector: Reflector) {}
async canActivate(context: ExecutionContext): Promise<boolean> {
const requiredFeature = this.reflector.get<string>('feature', context.getHandler());
const { property } = context.switchToHttp().getRequest();
if (!property.subscription || property.subscription.status !== 'ACTIVE') {
throw new PaymentRequiredException('Kontrak langganan properti tidak aktif.');
}
if (!property.subscription.features.includes(requiredFeature)) {
throw new ForbiddenException(`Fitur '${requiredFeature}' tidak tercakup dalam paket kontrak Anda.`);
}
return true;
}
}Live Simulator & Execution Sandbox
RolesGuard verified caller is 'admin'. Idempotency Key verified in Redis. MongoDB document updated.
Contract for 'Grand Horizon Hotel & Resort' persisted into Property document with 1-Year validity.
Provisioned 1-Year Platinum Contract #PKS-2026-042 via manual B2B order.
Updated welcome video banner and personalized TV dining directory.
Eksplorasi Fitur Terkait Lainnya
Lihat Semua Fitur →Subscription Contract Engine
Provisioning langganan berbasis kontrak formal B2B dengan Idempotency Key, masa berlaku otomatis, dan fitur tersemat (embedded entitlements) pada dokumen MongoDB.
Multi-Tier Scoped RBAC
Hirarki 4 peran (Superadmin, Admin, Manager, Frontdesk) dengan pembatasan domain (scoping) ketat untuk mencegah kebocoran data antar-penyewa properti.
Automated Activity Audit Trail
Pencatatan riwayat audit append-only di koleksi MongoDB activity_logs untuk seluruh aksi administratif, mutasi kontrak, dan perubahan konten.
STB Device Pairing & Room Ops
Otomasi check-in & check-out tamu: pairing perangkat STB, personalisasi nama sambutan TV saat check-in, dan reset sesi privasi secara real-time saat check-out.
Redis Entitlements Cache Layer
Caching status langganan dan hak akses properti di memory Redis untuk validasi izin super cepat (<1ms) pada request STB berfrekuensi tinggi.