install method
Wire the watcher's listening hook (event subscription, override, etc.).
Implementation
@override
void install() {
if (_installed) return;
_installed = true;
// 1. Auth lifecycle.
EventDispatcher.instance.register(AuthLogin, <MagicListener Function()>[
() => _EventToRecord<AuthLogin>('AuthLogin'),
]);
EventDispatcher.instance.register(AuthLogout, <MagicListener Function()>[
() => _EventToRecord<AuthLogout>('AuthLogout'),
]);
EventDispatcher.instance.register(AuthFailed, <MagicListener Function()>[
() => _EventToRecord<AuthFailed>('AuthFailed'),
]);
EventDispatcher.instance.register(AuthRestored, <MagicListener Function()>[
() => _EventToRecord<AuthRestored>('AuthRestored'),
]);
// 2. Database lifecycle (connection only; QueryExecuted is omitted
// until alpha-3 ships a dedicated query channel).
EventDispatcher.instance.register(
DatabaseConnected,
<MagicListener Function()>[
() => _EventToRecord<DatabaseConnected>('DatabaseConnected'),
],
);
// 3. Gate definitions (the gate RESULT event lives on
// MagicGateWatcher to avoid a double-record on the event channel).
EventDispatcher.instance.register(
GateAbilityDefined,
<MagicListener Function()>[
() => _EventToRecord<GateAbilityDefined>('GateAbilityDefined'),
],
);
EventDispatcher.instance.register(
GateBeforeRegistered,
<MagicListener Function()>[
() => _EventToRecord<GateBeforeRegistered>('GateBeforeRegistered'),
],
);
}