events->listen( $this->handle(), CompositionSavedEvent::class, CompositionSyncListener::class, 'onCompositionSaved', DeliveryMode::Deferred, ); } public function handle(): string { return 'mail'; } public function label(): string { return 'Mail'; } public function author(): string { return 'Ktrix'; } public function description(): string { return 'Email client interface - provides a 3-column responsive mail client for reading, composing, and managing email messages'; } public function version(): string { return '0.0.1'; } public function permissions(): array { return [ 'mail' => [ 'label' => 'Access Mail', 'description' => 'View and access the mail client', 'group' => 'Mail' ], 'mail.compose' => [ 'label' => 'Compose Mail', 'description' => 'Compose and send email messages', 'group' => 'Mail' ], 'mail.delete' => [ 'label' => 'Delete Mail', 'description' => 'Delete email messages', 'group' => 'Mail' ], 'mail.*' => [ 'label' => 'Full Mail Access', 'description' => 'All mail operations', 'group' => 'Mail' ], ]; } public function registerBI(): array { return [ 'handle' => $this->handle(), 'namespace' => 'Mail', 'version' => $this->version(), 'label' => $this->label(), 'author' => $this->author(), 'description' => $this->description(), 'boot' => 'static/module.mjs', ]; } }