{ "output": "package com.servicebook.ui.util\n\nimport android.app.Application\nimport androidx.lifecycle.AndroidViewModel\nimport com.servicebook.domain.AppGate\n\n/**\n * Base class for ViewModels that support paywall write-gating.\n * Reads [AppGate.isReadOnly] directly (no async propagation) so that\n * [guardWrites] always reflects the current gate state at call time.\n */\nabstract class GatedViewModel(app: Application, private val appGate: AppGate) : AndroidViewModel(app) {\n protected inline fun guardWrites(block: () -> Unit) {\n if (!appGate.isReadOnly.value) block()\n }\n}\n" }