1: <?php
2:
3: namespace LaravelUi5\Core;
4:
5: use LaravelUi5\Core\Attributes\Role;
6: use LaravelUi5\Core\Enums\SettingVisibilityRole;
7: use LaravelUi5\Core\Ui5\Contracts\Ui5AppInterface;
8: use LaravelUi5\Core\Ui5\Contracts\Ui5ArtifactInterface;
9: use LaravelUi5\Core\Ui5\Contracts\Ui5LibraryInterface;
10: use LaravelUi5\Core\Ui5\AbstractUi5Module;
11:
12:
13: #[
14: Role(SettingVisibilityRole::SuperAdmin->name, 'System-wide administrative control across all tenants. Used exclusively by the SaaS provider.'),
15: Role(SettingVisibilityRole::TenantAdmin->name, 'Responsible for setting up and maintaining tenants on behalf of the customer (typically a consultant).'),
16: Role(SettingVisibilityRole::SiteAdmin->name, 'Internal admin user at the customer site. Manages users, settings, and internal configuration.'),
17: Role(SettingVisibilityRole::Supervisor->name, 'Team or departmental lead with operational oversight, planning, and reporting responsibilities.'),
18: Role(SettingVisibilityRole::Employee->name, 'Default role for all internal users. Grants basic access to features relevant to regular staff.')
19: ]
20: class CoreModule extends AbstractUi5Module
21: {
22: public function hasApp(): bool
23: {
24: return false;
25: }
26:
27: public function getApp(): ?Ui5AppInterface
28: {
29: return null;
30: }
31:
32: public function hasLibrary(): bool
33: {
34: return true;
35: }
36:
37: public function getLibrary(): ?Ui5LibraryInterface
38: {
39: return new CoreLibrary($this);
40: }
41:
42: public function getArtifactRoot(): Ui5ArtifactInterface
43: {
44: return $this->getLibrary();
45: }
46:
47: public function getCards(): array
48: {
49: return [];
50: }
51:
52: public function getKpis(): array
53: {
54: return [];
55: }
56:
57: public function getTiles(): array
58: {
59: return [];
60: }
61:
62: public function getActions(): array
63: {
64: return [];
65: }
66:
67: public function getResources(): array
68: {
69: return [];
70: }
71: }
72: