fix: namespace to Core\Mod\Tenant, restructure package
- Changed namespace from Core\Core\Tenant to Core\Mod\Tenant - Moved src/ contents to root - Removed Host UK extension files (admin.php, MemberManager, TeamManager) - Fixed composer.json autoload paths
This commit is contained in:
parent
acceff6d36
commit
86dbf4e763
134 changed files with 512 additions and 1931 deletions
141
Boot.php
141
Boot.php
|
|
@ -2,17 +2,24 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Tenant;
|
namespace Core\Mod\Tenant;
|
||||||
|
|
||||||
use Core\Events\AdminPanelBooting;
|
use Core\Events\AdminPanelBooting;
|
||||||
|
use Core\Events\ApiRoutesRegistering;
|
||||||
|
use Core\Events\ConsoleBooting;
|
||||||
|
use Core\Events\WebRoutesRegistering;
|
||||||
|
use Illuminate\Support\Facades\Route;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tenant Module Boot (Host UK extension).
|
* Tenant Module Boot.
|
||||||
*
|
*
|
||||||
* Extends core Tenant module with Host UK specific admin features:
|
* Core multi-tenancy module handling:
|
||||||
* - Team Manager
|
* - Users and authentication
|
||||||
* - Member Manager
|
* - Workspaces (the tenant boundary)
|
||||||
|
* - Account management (deletion, settings)
|
||||||
|
* - Entitlements (feature access, packages, usage)
|
||||||
|
* - Referrals
|
||||||
*/
|
*/
|
||||||
class Boot extends ServiceProvider
|
class Boot extends ServiceProvider
|
||||||
{
|
{
|
||||||
|
|
@ -25,16 +32,96 @@ class Boot extends ServiceProvider
|
||||||
*/
|
*/
|
||||||
public static array $listens = [
|
public static array $listens = [
|
||||||
AdminPanelBooting::class => 'onAdminPanel',
|
AdminPanelBooting::class => 'onAdminPanel',
|
||||||
|
ApiRoutesRegistering::class => 'onApiRoutes',
|
||||||
|
WebRoutesRegistering::class => 'onWebRoutes',
|
||||||
|
ConsoleBooting::class => 'onConsole',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function register(): void
|
public function register(): void
|
||||||
{
|
{
|
||||||
//
|
$this->app->singleton(
|
||||||
|
\Core\Mod\Tenant\Contracts\TwoFactorAuthenticationProvider::class,
|
||||||
|
\Core\Mod\Tenant\Services\TotpService::class
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->app->singleton(
|
||||||
|
\Core\Mod\Tenant\Services\EntitlementService::class,
|
||||||
|
\Core\Mod\Tenant\Services\EntitlementService::class
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->app->singleton(
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceManager::class,
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceManager::class
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->app->singleton(
|
||||||
|
\Core\Mod\Tenant\Services\UserStatsService::class,
|
||||||
|
\Core\Mod\Tenant\Services\UserStatsService::class
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->app->singleton(
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceService::class,
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceService::class
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->app->singleton(
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceCacheManager::class,
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceCacheManager::class
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->app->singleton(
|
||||||
|
\Core\Mod\Tenant\Services\UsageAlertService::class,
|
||||||
|
\Core\Mod\Tenant\Services\UsageAlertService::class
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->app->singleton(
|
||||||
|
\Core\Mod\Tenant\Services\EntitlementWebhookService::class,
|
||||||
|
\Core\Mod\Tenant\Services\EntitlementWebhookService::class
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->app->singleton(
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceTeamService::class,
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceTeamService::class
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->registerBackwardCompatAliases();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function registerBackwardCompatAliases(): void
|
||||||
|
{
|
||||||
|
if (! class_exists(\App\Services\WorkspaceManager::class)) {
|
||||||
|
class_alias(
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceManager::class,
|
||||||
|
\App\Services\WorkspaceManager::class
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! class_exists(\App\Services\UserStatsService::class)) {
|
||||||
|
class_alias(
|
||||||
|
\Core\Mod\Tenant\Services\UserStatsService::class,
|
||||||
|
\App\Services\UserStatsService::class
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! class_exists(\App\Services\WorkspaceService::class)) {
|
||||||
|
class_alias(
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceService::class,
|
||||||
|
\App\Services\WorkspaceService::class
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! class_exists(\App\Services\WorkspaceCacheManager::class)) {
|
||||||
|
class_alias(
|
||||||
|
\Core\Mod\Tenant\Services\WorkspaceCacheManager::class,
|
||||||
|
\App\Services\WorkspaceCacheManager::class
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function boot(): void
|
public function boot(): void
|
||||||
{
|
{
|
||||||
//
|
$this->loadMigrationsFrom(__DIR__.'/Migrations');
|
||||||
|
$this->loadTranslationsFrom(__DIR__.'/Lang/en_GB', 'tenant');
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
|
|
@ -45,12 +132,42 @@ class Boot extends ServiceProvider
|
||||||
{
|
{
|
||||||
$event->views($this->moduleName, __DIR__.'/View/Blade');
|
$event->views($this->moduleName, __DIR__.'/View/Blade');
|
||||||
|
|
||||||
if (file_exists(__DIR__.'/Routes/admin.php')) {
|
// Admin Livewire components
|
||||||
$event->routes(fn () => require __DIR__.'/Routes/admin.php');
|
$event->livewire('tenant.admin.entitlement-webhook-manager', View\Modal\Admin\EntitlementWebhookManager::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Admin components
|
public function onApiRoutes(ApiRoutesRegistering $event): void
|
||||||
$event->livewire('tenant.admin.team-manager', View\Modal\Admin\TeamManager::class);
|
{
|
||||||
$event->livewire('tenant.admin.member-manager', View\Modal\Admin\MemberManager::class);
|
if (file_exists(__DIR__.'/Routes/api.php')) {
|
||||||
|
$event->routes(fn () => Route::middleware('api')->group(__DIR__.'/Routes/api.php'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onWebRoutes(WebRoutesRegistering $event): void
|
||||||
|
{
|
||||||
|
$event->views($this->moduleName, __DIR__.'/View/Blade');
|
||||||
|
|
||||||
|
if (file_exists(__DIR__.'/Routes/web.php')) {
|
||||||
|
$event->routes(fn () => Route::middleware('web')->group(__DIR__.'/Routes/web.php'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Account management
|
||||||
|
$event->livewire('tenant.account.cancel-deletion', View\Modal\Web\CancelDeletion::class);
|
||||||
|
$event->livewire('tenant.account.confirm-deletion', View\Modal\Web\ConfirmDeletion::class);
|
||||||
|
|
||||||
|
// Workspace
|
||||||
|
$event->livewire('tenant.workspace.home', View\Modal\Web\WorkspaceHome::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onConsole(ConsoleBooting $event): void
|
||||||
|
{
|
||||||
|
$event->middleware('admin.domain', Middleware\RequireAdminDomain::class);
|
||||||
|
$event->middleware('workspace.permission', Middleware\CheckWorkspacePermission::class);
|
||||||
|
|
||||||
|
// Artisan commands
|
||||||
|
$event->command(Console\Commands\RefreshUserStats::class);
|
||||||
|
$event->command(Console\Commands\ProcessAccountDeletions::class);
|
||||||
|
$event->command(Console\Commands\CheckUsageAlerts::class);
|
||||||
|
$event->command(Console\Commands\ResetBillingCycles::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Concerns;
|
namespace Core\Mod\Tenant\Concerns;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Namespace_;
|
use Core\Mod\Tenant\Models\Namespace_;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Concerns;
|
namespace Core\Mod\Tenant\Concerns;
|
||||||
|
|
||||||
use Core\Core\Tenant\Exceptions\MissingWorkspaceContextException;
|
use Core\Mod\Tenant\Exceptions\MissingWorkspaceContextException;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Scopes\WorkspaceScope;
|
use Core\Mod\Tenant\Scopes\WorkspaceScope;
|
||||||
use Core\Core\Tenant\Services\WorkspaceCacheManager;
|
use Core\Mod\Tenant\Services\WorkspaceCacheManager;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Concerns;
|
namespace Core\Mod\Tenant\Concerns;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Services\WorkspaceCacheManager;
|
use Core\Mod\Tenant\Services\WorkspaceCacheManager;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Concerns;
|
namespace Core\Mod\Tenant\Concerns;
|
||||||
|
|
||||||
use Core\Core\Tenant\Contracts\TwoFactorAuthenticationProvider;
|
use Core\Mod\Tenant\Contracts\TwoFactorAuthenticationProvider;
|
||||||
use Core\Core\Tenant\Models\UserTwoFactorAuth;
|
use Core\Mod\Tenant\Models\UserTwoFactorAuth;
|
||||||
use Core\Core\Tenant\Services\TotpService;
|
use Core\Mod\Tenant\Services\TotpService;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Console\Commands;
|
namespace Core\Mod\Tenant\Console\Commands;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Services\UsageAlertService;
|
use Core\Mod\Tenant\Services\UsageAlertService;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Console\Commands;
|
namespace Core\Mod\Tenant\Console\Commands;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\AccountDeletionRequest;
|
use Core\Mod\Tenant\Models\AccountDeletionRequest;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Console\Commands;
|
namespace Core\Mod\Tenant\Console\Commands;
|
||||||
|
|
||||||
use Core\Core\Tenant\Jobs\ComputeUserStats;
|
use Core\Mod\Tenant\Jobs\ComputeUserStats;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
class RefreshUserStats extends Command
|
class RefreshUserStats extends Command
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Console\Commands;
|
namespace Core\Mod\Tenant\Console\Commands;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Boost;
|
use Core\Mod\Tenant\Models\Boost;
|
||||||
use Core\Core\Tenant\Models\EntitlementLog;
|
use Core\Mod\Tenant\Models\EntitlementLog;
|
||||||
use Core\Core\Tenant\Models\UsageRecord;
|
use Core\Mod\Tenant\Models\UsageRecord;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Notifications\BoostExpiredNotification;
|
use Core\Mod\Tenant\Notifications\BoostExpiredNotification;
|
||||||
use Core\Core\Tenant\Services\EntitlementService;
|
use Core\Mod\Tenant\Services\EntitlementService;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Contracts;
|
namespace Core\Mod\Tenant\Contracts;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contract for entitlement webhook events.
|
* Contract for entitlement webhook events.
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Contracts;
|
namespace Core\Mod\Tenant\Contracts;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contract for two-factor authentication providers.
|
* Contract for two-factor authentication providers.
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Controllers\Api;
|
namespace Core\Mod\Tenant\Controllers\Api;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\EntitlementWebhook;
|
use Core\Mod\Tenant\Models\EntitlementWebhook;
|
||||||
use Core\Core\Tenant\Models\EntitlementWebhookDelivery;
|
use Core\Mod\Tenant\Models\EntitlementWebhookDelivery;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Services\EntitlementWebhookService;
|
use Core\Mod\Tenant\Services\EntitlementWebhookService;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Controllers;
|
namespace Core\Mod\Tenant\Controllers;
|
||||||
|
|
||||||
use Core\Front\Controller;
|
use Core\Front\Controller;
|
||||||
use Illuminate\Auth\Events\Registered;
|
use Illuminate\Auth\Events\Registered;
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Controllers;
|
namespace Core\Mod\Tenant\Controllers;
|
||||||
|
|
||||||
use Core\Helpers\PrivacyHelper;
|
use Core\Helpers\PrivacyHelper;
|
||||||
use Core\Mod\Trees\Models\TreePlanting;
|
use Core\Mod\Trees\Models\TreePlanting;
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Controllers;
|
namespace Core\Mod\Tenant\Controllers;
|
||||||
|
|
||||||
use Core\Front\Controller;
|
use Core\Front\Controller;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Controllers;
|
namespace Core\Mod\Tenant\Controllers;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Models\WorkspaceInvitation;
|
use Core\Mod\Tenant\Models\WorkspaceInvitation;
|
||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Factories;
|
namespace Core\Mod\Tenant\Database\Factories;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\Core\Core\Tenant\Models\User>
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\Core\Mod\Tenant\Models\User>
|
||||||
*/
|
*/
|
||||||
class UserFactory extends Factory
|
class UserFactory extends Factory
|
||||||
{
|
{
|
||||||
|
|
@ -17,7 +17,7 @@ class UserFactory extends Factory
|
||||||
* Uses the backward-compatible alias class to ensure type compatibility
|
* Uses the backward-compatible alias class to ensure type compatibility
|
||||||
* with existing code that expects Mod\Tenant\Models\User.
|
* with existing code that expects Mod\Tenant\Models\User.
|
||||||
*/
|
*/
|
||||||
protected $model = \Core\Core\Tenant\Models\User::class;
|
protected $model = \Core\Mod\Tenant\Models\User::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The current password being used by the factory.
|
* The current password being used by the factory.
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Factories;
|
namespace Core\Mod\Tenant\Database\Factories;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\UserToken;
|
use Core\Mod\Tenant\Models\UserToken;
|
||||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Factories;
|
namespace Core\Mod\Tenant\Database\Factories;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\WaitlistEntry;
|
use Core\Mod\Tenant\Models\WaitlistEntry;
|
||||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\Core\Core\Tenant\Models\WaitlistEntry>
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\Core\Mod\Tenant\Models\WaitlistEntry>
|
||||||
*/
|
*/
|
||||||
class WaitlistEntryFactory extends Factory
|
class WaitlistEntryFactory extends Factory
|
||||||
{
|
{
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Factories;
|
namespace Core\Mod\Tenant\Database\Factories;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\Core\Core\Tenant\Models\Workspace>
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\Core\Mod\Tenant\Models\Workspace>
|
||||||
*/
|
*/
|
||||||
class WorkspaceFactory extends Factory
|
class WorkspaceFactory extends Factory
|
||||||
{
|
{
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Factories;
|
namespace Core\Mod\Tenant\Database\Factories;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\WorkspaceInvitation;
|
use Core\Mod\Tenant\Models\WorkspaceInvitation;
|
||||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\Core\Core\Tenant\Models\WorkspaceInvitation>
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\Core\Mod\Tenant\Models\WorkspaceInvitation>
|
||||||
*/
|
*/
|
||||||
class WorkspaceInvitationFactory extends Factory
|
class WorkspaceInvitationFactory extends Factory
|
||||||
{
|
{
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Seeders;
|
namespace Core\Mod\Tenant\Database\Seeders;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Package;
|
use Core\Mod\Tenant\Models\Package;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Seeders;
|
namespace Core\Mod\Tenant\Database\Seeders;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Core\Core\Tenant\Models\Package;
|
use Core\Mod\Tenant\Models\Package;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Services\EntitlementService;
|
use Core\Mod\Tenant\Services\EntitlementService;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Seeders;
|
namespace Core\Mod\Tenant\Database\Seeders;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Seeders;
|
namespace Core\Mod\Tenant\Database\Seeders;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Package;
|
use Core\Mod\Tenant\Models\Package;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Models\WorkspacePackage;
|
use Core\Mod\Tenant\Models\WorkspacePackage;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
class SystemWorkspaceSeeder extends Seeder
|
class SystemWorkspaceSeeder extends Seeder
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Database\Seeders;
|
namespace Core\Mod\Tenant\Database\Seeders;
|
||||||
|
|
||||||
use Core\Core\Tenant\Enums\UserTier;
|
use Core\Mod\Tenant\Enums\UserTier;
|
||||||
use Core\Core\Tenant\Models\Package;
|
use Core\Mod\Tenant\Models\Package;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Models\WorkspacePackage;
|
use Core\Mod\Tenant\Models\WorkspacePackage;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Enums;
|
namespace Core\Mod\Tenant\Enums;
|
||||||
|
|
||||||
enum UserTier: string
|
enum UserTier: string
|
||||||
{
|
{
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Enums;
|
namespace Core\Mod\Tenant\Enums;
|
||||||
|
|
||||||
enum WebhookDeliveryStatus: string
|
enum WebhookDeliveryStatus: string
|
||||||
{
|
{
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Events\Webhook;
|
namespace Core\Mod\Tenant\Events\Webhook;
|
||||||
|
|
||||||
use Core\Core\Tenant\Contracts\EntitlementWebhookEvent;
|
use Core\Mod\Tenant\Contracts\EntitlementWebhookEvent;
|
||||||
use Core\Core\Tenant\Models\Boost;
|
use Core\Mod\Tenant\Models\Boost;
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event fired when a boost is activated for a workspace.
|
* Event fired when a boost is activated for a workspace.
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Events\Webhook;
|
namespace Core\Mod\Tenant\Events\Webhook;
|
||||||
|
|
||||||
use Core\Core\Tenant\Contracts\EntitlementWebhookEvent;
|
use Core\Mod\Tenant\Contracts\EntitlementWebhookEvent;
|
||||||
use Core\Core\Tenant\Models\Boost;
|
use Core\Mod\Tenant\Models\Boost;
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event fired when a boost expires for a workspace.
|
* Event fired when a boost expires for a workspace.
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Events\Webhook;
|
namespace Core\Mod\Tenant\Events\Webhook;
|
||||||
|
|
||||||
use Core\Core\Tenant\Contracts\EntitlementWebhookEvent;
|
use Core\Mod\Tenant\Contracts\EntitlementWebhookEvent;
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event fired when workspace usage reaches 100% of the limit.
|
* Event fired when workspace usage reaches 100% of the limit.
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Events\Webhook;
|
namespace Core\Mod\Tenant\Events\Webhook;
|
||||||
|
|
||||||
use Core\Core\Tenant\Contracts\EntitlementWebhookEvent;
|
use Core\Mod\Tenant\Contracts\EntitlementWebhookEvent;
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event fired when workspace usage reaches the warning threshold (80%).
|
* Event fired when workspace usage reaches the warning threshold (80%).
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Events\Webhook;
|
namespace Core\Mod\Tenant\Events\Webhook;
|
||||||
|
|
||||||
use Core\Core\Tenant\Contracts\EntitlementWebhookEvent;
|
use Core\Mod\Tenant\Contracts\EntitlementWebhookEvent;
|
||||||
use Core\Core\Tenant\Models\Package;
|
use Core\Mod\Tenant\Models\Package;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event fired when a workspace's package changes (upgrade, downgrade, or new assignment).
|
* Event fired when a workspace's package changes (upgrade, downgrade, or new assignment).
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Exceptions;
|
namespace Core\Mod\Tenant\Exceptions;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Exceptions;
|
namespace Core\Mod\Tenant\Exceptions;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Features;
|
namespace Core\Mod\Tenant\Features;
|
||||||
|
|
||||||
use Core\Core\Tenant\Enums\UserTier;
|
use Core\Mod\Tenant\Enums\UserTier;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Services\EntitlementService;
|
use Core\Mod\Tenant\Services\EntitlementService;
|
||||||
|
|
||||||
class ApolloTier
|
class ApolloTier
|
||||||
{
|
{
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Features;
|
namespace Core\Mod\Tenant\Features;
|
||||||
|
|
||||||
use Illuminate\Support\Lottery;
|
use Illuminate\Support\Lottery;
|
||||||
|
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Features;
|
namespace Core\Mod\Tenant\Features;
|
||||||
|
|
||||||
use Core\Core\Tenant\Enums\UserTier;
|
use Core\Mod\Tenant\Enums\UserTier;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Services\EntitlementService;
|
use Core\Mod\Tenant\Services\EntitlementService;
|
||||||
|
|
||||||
class HadesTier
|
class HadesTier
|
||||||
{
|
{
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Features;
|
namespace Core\Mod\Tenant\Features;
|
||||||
|
|
||||||
use Core\Core\Tenant\Enums\UserTier;
|
use Core\Mod\Tenant\Enums\UserTier;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Services\EntitlementService;
|
use Core\Mod\Tenant\Services\EntitlementService;
|
||||||
|
|
||||||
class UnlimitedWorkspaces
|
class UnlimitedWorkspaces
|
||||||
{
|
{
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Jobs;
|
namespace Core\Mod\Tenant\Jobs;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Services\UserStatsService;
|
use Core\Mod\Tenant\Services\UserStatsService;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Jobs;
|
namespace Core\Mod\Tenant\Jobs;
|
||||||
|
|
||||||
use Core\Core\Tenant\Enums\WebhookDeliveryStatus;
|
use Core\Mod\Tenant\Enums\WebhookDeliveryStatus;
|
||||||
use Core\Core\Tenant\Models\EntitlementWebhook;
|
use Core\Mod\Tenant\Models\EntitlementWebhook;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Jobs;
|
namespace Core\Mod\Tenant\Jobs;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\AccountDeletionRequest;
|
use Core\Mod\Tenant\Models\AccountDeletionRequest;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Listeners;
|
namespace Core\Mod\Tenant\Listeners;
|
||||||
|
|
||||||
use Core\Core\Tenant\Notifications\WelcomeNotification;
|
use Core\Mod\Tenant\Notifications\WelcomeNotification;
|
||||||
use Illuminate\Auth\Events\Registered;
|
use Illuminate\Auth\Events\Registered;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Mail;
|
namespace Core\Mod\Tenant\Mail;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\AccountDeletionRequest;
|
use Core\Mod\Tenant\Models\AccountDeletionRequest;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Mail\Mailable;
|
use Illuminate\Mail\Mailable;
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Middleware;
|
namespace Core\Mod\Tenant\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Services\WorkspaceTeamService;
|
use Core\Mod\Tenant\Services\WorkspaceTeamService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Middleware;
|
namespace Core\Mod\Tenant\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Middleware;
|
namespace Core\Mod\Tenant\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Core\Core\Tenant\Exceptions\MissingWorkspaceContextException;
|
use Core\Mod\Tenant\Exceptions\MissingWorkspaceContextException;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
|
|
@ -26,7 +26,7 @@ use Symfony\Component\HttpFoundation\Response;
|
||||||
* });
|
* });
|
||||||
*
|
*
|
||||||
* Register in Kernel.php:
|
* Register in Kernel.php:
|
||||||
* 'workspace.required' => \Core\Core\Tenant\Middleware\RequireWorkspaceContext::class,
|
* 'workspace.required' => \Core\Mod\Tenant\Middleware\RequireWorkspaceContext::class,
|
||||||
*/
|
*/
|
||||||
class RequireWorkspaceContext
|
class RequireWorkspaceContext
|
||||||
{
|
{
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Middleware;
|
namespace Core\Mod\Tenant\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Core\Core\Tenant\Services\NamespaceService;
|
use Core\Mod\Tenant\Services\NamespaceService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Middleware;
|
namespace Core\Mod\Tenant\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Services\WorkspaceService;
|
use Core\Mod\Tenant\Services\WorkspaceService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Core\Core\Tenant\Contracts\EntitlementWebhookEvent;
|
use Core\Mod\Tenant\Contracts\EntitlementWebhookEvent;
|
||||||
use Core\Core\Tenant\Enums\WebhookDeliveryStatus;
|
use Core\Mod\Tenant\Enums\WebhookDeliveryStatus;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Core\Core\Tenant\Enums\WebhookDeliveryStatus;
|
use Core\Mod\Tenant\Enums\WebhookDeliveryStatus;
|
||||||
use DateTimeInterface;
|
use DateTimeInterface;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Core\Core\Tenant\Enums\UserTier;
|
use Core\Mod\Tenant\Enums\UserTier;
|
||||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
@ -20,9 +20,9 @@ class User extends Authenticatable implements MustVerifyEmail
|
||||||
/**
|
/**
|
||||||
* Create a new factory instance for the model.
|
* Create a new factory instance for the model.
|
||||||
*/
|
*/
|
||||||
protected static function newFactory(): \Core\Core\Tenant\Database\Factories\UserFactory
|
protected static function newFactory(): \Core\Mod\Tenant\Database\Factories\UserFactory
|
||||||
{
|
{
|
||||||
return \Core\Core\Tenant\Database\Factories\UserFactory::new();
|
return \Core\Mod\Tenant\Database\Factories\UserFactory::new();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -18,9 +18,9 @@ class UserToken extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
protected static function newFactory(): \Core\Core\Tenant\Database\Factories\UserTokenFactory
|
protected static function newFactory(): \Core\Mod\Tenant\Database\Factories\UserTokenFactory
|
||||||
{
|
{
|
||||||
return \Core\Core\Tenant\Database\Factories\UserTokenFactory::new();
|
return \Core\Mod\Tenant\Database\Factories\UserTokenFactory::new();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -13,9 +13,9 @@ class WaitlistEntry extends Model
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
use Notifiable;
|
use Notifiable;
|
||||||
|
|
||||||
protected static function newFactory(): \Core\Core\Tenant\Database\Factories\WaitlistEntryFactory
|
protected static function newFactory(): \Core\Mod\Tenant\Database\Factories\WaitlistEntryFactory
|
||||||
{
|
{
|
||||||
return \Core\Core\Tenant\Database\Factories\WaitlistEntryFactory::new();
|
return \Core\Mod\Tenant\Database\Factories\WaitlistEntryFactory::new();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Core\Core\Tenant\Services\EntitlementResult;
|
use Core\Mod\Tenant\Services\EntitlementResult;
|
||||||
use Core\Core\Tenant\Services\EntitlementService;
|
use Core\Mod\Tenant\Services\EntitlementService;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
|
|
@ -14,9 +14,9 @@ class Workspace extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
protected static function newFactory(): \Core\Core\Tenant\Database\Factories\WorkspaceFactory
|
protected static function newFactory(): \Core\Mod\Tenant\Database\Factories\WorkspaceFactory
|
||||||
{
|
{
|
||||||
return \Core\Core\Tenant\Database\Factories\WorkspaceFactory::new();
|
return \Core\Mod\Tenant\Database\Factories\WorkspaceFactory::new();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
|
|
@ -577,7 +577,7 @@ class Workspace extends Model
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try to get from authenticated user's default workspace
|
// Try to get from authenticated user's default workspace
|
||||||
if (auth()->check() && auth()->user() instanceof \Core\Core\Tenant\Models\User) {
|
if (auth()->check() && auth()->user() instanceof \Core\Mod\Tenant\Models\User) {
|
||||||
return auth()->user()->defaultHostWorkspace();
|
return auth()->user()->defaultHostWorkspace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -680,7 +680,7 @@ class Workspace extends Model
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Send notification
|
// Send notification
|
||||||
$invitation->notify(new \Core\Core\Tenant\Notifications\WorkspaceInvitationNotification($invitation));
|
$invitation->notify(new \Core\Mod\Tenant\Notifications\WorkspaceInvitationNotification($invitation));
|
||||||
|
|
||||||
return $invitation;
|
return $invitation;
|
||||||
}
|
}
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -15,9 +15,9 @@ class WorkspaceInvitation extends Model
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
use Notifiable;
|
use Notifiable;
|
||||||
|
|
||||||
protected static function newFactory(): \Core\Core\Tenant\Database\Factories\WorkspaceInvitationFactory
|
protected static function newFactory(): \Core\Mod\Tenant\Database\Factories\WorkspaceInvitationFactory
|
||||||
{
|
{
|
||||||
return \Core\Core\Tenant\Database\Factories\WorkspaceInvitationFactory::new();
|
return \Core\Mod\Tenant\Database\Factories\WorkspaceInvitationFactory::new();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Models;
|
namespace Core\Mod\Tenant\Models;
|
||||||
|
|
||||||
use Core\Core\Tenant\Concerns\BelongsToWorkspace;
|
use Core\Mod\Tenant\Concerns\BelongsToWorkspace;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Notifications;
|
namespace Core\Mod\Tenant\Notifications;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Boost;
|
use Core\Mod\Tenant\Models\Boost;
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Notifications\Messages\MailMessage;
|
use Illuminate\Notifications\Messages\MailMessage;
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Notifications;
|
namespace Core\Mod\Tenant\Notifications;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Core\Core\Tenant\Models\UsageAlertHistory;
|
use Core\Mod\Tenant\Models\UsageAlertHistory;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Notifications\Messages\MailMessage;
|
use Illuminate\Notifications\Messages\MailMessage;
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Notifications;
|
namespace Core\Mod\Tenant\Notifications;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\WaitlistEntry;
|
use Core\Mod\Tenant\Models\WaitlistEntry;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Notifications\Messages\MailMessage;
|
use Illuminate\Notifications\Messages\MailMessage;
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Notifications;
|
namespace Core\Mod\Tenant\Notifications;
|
||||||
|
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Notifications;
|
namespace Core\Mod\Tenant\Notifications;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\WorkspaceInvitation;
|
use Core\Mod\Tenant\Models\WorkspaceInvitation;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Notifications\Messages\MailMessage;
|
use Illuminate\Notifications\Messages\MailMessage;
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Route;
|
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Tenant Admin Routes
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| Routes for workspace team and member management in the admin panel.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
Route::middleware(['web', 'auth', 'admin.domain'])->prefix('admin/tenant')->name('hub.admin.tenant.')->group(function () {
|
|
||||||
// Team Manager
|
|
||||||
Route::get('/teams', \Core\Tenant\View\Modal\Admin\TeamManager::class)
|
|
||||||
->name('teams');
|
|
||||||
|
|
||||||
// Member Manager
|
|
||||||
Route::get('/members', \Core\Tenant\View\Modal\Admin\MemberManager::class)
|
|
||||||
->name('members');
|
|
||||||
});
|
|
||||||
|
|
@ -10,7 +10,7 @@ declare(strict_types=1);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Core\Mod\Api\Controllers\WorkspaceController;
|
use Core\Mod\Api\Controllers\WorkspaceController;
|
||||||
use Core\Core\Tenant\Controllers\Api\EntitlementWebhookController;
|
use Core\Mod\Tenant\Controllers\Api\EntitlementWebhookController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -8,9 +8,9 @@ declare(strict_types=1);
|
||||||
* Account management and workspace routes.
|
* Account management and workspace routes.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Core\Core\Tenant\View\Modal\Web\CancelDeletion;
|
use Core\Mod\Tenant\View\Modal\Web\CancelDeletion;
|
||||||
use Core\Core\Tenant\View\Modal\Web\ConfirmDeletion;
|
use Core\Mod\Tenant\View\Modal\Web\ConfirmDeletion;
|
||||||
use Core\Core\Tenant\View\Modal\Web\WorkspaceHome;
|
use Core\Mod\Tenant\View\Modal\Web\WorkspaceHome;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -41,7 +41,7 @@ Route::prefix('account')->name('account.')->group(function () {
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Route::get('/workspace/invitation/{token}', \Core\Core\Tenant\Controllers\WorkspaceInvitationController::class)
|
Route::get('/workspace/invitation/{token}', \Core\Mod\Tenant\Controllers\WorkspaceInvitationController::class)
|
||||||
->name('workspace.invitation.accept');
|
->name('workspace.invitation.accept');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Rules;
|
namespace Core\Mod\Tenant\Rules;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Illuminate\Contracts\Validation\ValidationRule;
|
use Illuminate\Contracts\Validation\ValidationRule;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Rules;
|
namespace Core\Mod\Tenant\Rules;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Core\Mod\Social\Enums\ResourceStatus;
|
use Core\Mod\Social\Enums\ResourceStatus;
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Scopes;
|
namespace Core\Mod\Tenant\Scopes;
|
||||||
|
|
||||||
use Core\Core\Tenant\Exceptions\MissingWorkspaceContextException;
|
use Core\Mod\Tenant\Exceptions\MissingWorkspaceContextException;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Scope;
|
use Illuminate\Database\Eloquent\Scope;
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Value object representing the result of an entitlement check.
|
* Value object representing the result of an entitlement check.
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Boost;
|
use Core\Mod\Tenant\Models\Boost;
|
||||||
use Core\Core\Tenant\Models\EntitlementLog;
|
use Core\Mod\Tenant\Models\EntitlementLog;
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Core\Core\Tenant\Models\Namespace_;
|
use Core\Mod\Tenant\Models\Namespace_;
|
||||||
use Core\Core\Tenant\Models\NamespacePackage;
|
use Core\Mod\Tenant\Models\NamespacePackage;
|
||||||
use Core\Core\Tenant\Models\Package;
|
use Core\Mod\Tenant\Models\Package;
|
||||||
use Core\Core\Tenant\Models\UsageRecord;
|
use Core\Mod\Tenant\Models\UsageRecord;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Models\WorkspacePackage;
|
use Core\Mod\Tenant\Models\WorkspacePackage;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
||||||
|
|
@ -2,19 +2,19 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Core\Core\Tenant\Contracts\EntitlementWebhookEvent;
|
use Core\Mod\Tenant\Contracts\EntitlementWebhookEvent;
|
||||||
use Core\Core\Tenant\Enums\WebhookDeliveryStatus;
|
use Core\Mod\Tenant\Enums\WebhookDeliveryStatus;
|
||||||
use Core\Core\Tenant\Events\Webhook\BoostActivatedEvent;
|
use Core\Mod\Tenant\Events\Webhook\BoostActivatedEvent;
|
||||||
use Core\Core\Tenant\Events\Webhook\BoostExpiredEvent;
|
use Core\Mod\Tenant\Events\Webhook\BoostExpiredEvent;
|
||||||
use Core\Core\Tenant\Events\Webhook\LimitReachedEvent;
|
use Core\Mod\Tenant\Events\Webhook\LimitReachedEvent;
|
||||||
use Core\Core\Tenant\Events\Webhook\LimitWarningEvent;
|
use Core\Mod\Tenant\Events\Webhook\LimitWarningEvent;
|
||||||
use Core\Core\Tenant\Events\Webhook\PackageChangedEvent;
|
use Core\Mod\Tenant\Events\Webhook\PackageChangedEvent;
|
||||||
use Core\Core\Tenant\Jobs\DispatchEntitlementWebhook;
|
use Core\Mod\Tenant\Jobs\DispatchEntitlementWebhook;
|
||||||
use Core\Core\Tenant\Models\EntitlementWebhook;
|
use Core\Mod\Tenant\Models\EntitlementWebhook;
|
||||||
use Core\Core\Tenant\Models\EntitlementWebhookDelivery;
|
use Core\Mod\Tenant\Models\EntitlementWebhookDelivery;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Namespace_;
|
use Core\Mod\Tenant\Models\Namespace_;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Namespace_;
|
use Core\Mod\Tenant\Models\Namespace_;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use chillerlan\QRCode\QRCode;
|
use chillerlan\QRCode\QRCode;
|
||||||
use chillerlan\QRCode\QROptions;
|
use chillerlan\QRCode\QROptions;
|
||||||
use Core\Core\Tenant\Contracts\TwoFactorAuthenticationProvider;
|
use Core\Mod\Tenant\Contracts\TwoFactorAuthenticationProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TOTP (Time-based One-Time Password) service.
|
* TOTP (Time-based One-Time Password) service.
|
||||||
|
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Core\Core\Tenant\Events\Webhook\LimitReachedEvent;
|
use Core\Mod\Tenant\Events\Webhook\LimitReachedEvent;
|
||||||
use Core\Core\Tenant\Events\Webhook\LimitWarningEvent;
|
use Core\Mod\Tenant\Events\Webhook\LimitWarningEvent;
|
||||||
use Core\Core\Tenant\Models\Feature;
|
use Core\Mod\Tenant\Models\Feature;
|
||||||
use Core\Core\Tenant\Models\UsageAlertHistory;
|
use Core\Mod\Tenant\Models\UsageAlertHistory;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Notifications\UsageAlertNotification;
|
use Core\Mod\Tenant\Notifications\UsageAlertNotification;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Core\Core\Tenant\Enums\UserTier;
|
use Core\Mod\Tenant\Enums\UserTier;
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
||||||
class UserStatsService
|
class UserStatsService
|
||||||
|
|
@ -44,7 +44,7 @@ class UserStatsService
|
||||||
// For page loads, return cached data immediately and queue refresh
|
// For page loads, return cached data immediately and queue refresh
|
||||||
if ($user->cached_stats) {
|
if ($user->cached_stats) {
|
||||||
// Queue background refresh
|
// Queue background refresh
|
||||||
dispatch(new \Core\Core\Tenant\Jobs\ComputeUserStats($user->id))->onQueue('stats');
|
dispatch(new \Core\Mod\Tenant\Jobs\ComputeUserStats($user->id))->onQueue('stats');
|
||||||
|
|
||||||
return $user->cached_stats;
|
return $user->cached_stats;
|
||||||
}
|
}
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Cache\TaggableStore;
|
use Illuminate\Cache\TaggableStore;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Illuminate\Support\Facades\Session;
|
use Illuminate\Support\Facades\Session;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Core\Tenant\Services;
|
namespace Core\Mod\Tenant\Services;
|
||||||
|
|
||||||
use Core\Core\Tenant\Models\User;
|
use Core\Mod\Tenant\Models\User;
|
||||||
use Core\Core\Tenant\Models\Workspace;
|
use Core\Mod\Tenant\Models\Workspace;
|
||||||
use Core\Core\Tenant\Models\WorkspaceMember;
|
use Core\Mod\Tenant\Models\WorkspaceMember;
|
||||||
use Core\Core\Tenant\Models\WorkspaceTeam;
|
use Core\Mod\Tenant\Models\WorkspaceTeam;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue