diff --git a/Modules/Company/Http/Controllers/CompanyController.php b/Modules/Company/Http/Controllers/CompanyController.php
index 5d727101..042dc401 100644
--- a/Modules/Company/Http/Controllers/CompanyController.php
+++ b/Modules/Company/Http/Controllers/CompanyController.php
@@ -2,78 +2,40 @@
namespace Modules\Company\Http\Controllers;
-use Illuminate\Contracts\Support\Renderable;
+use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
-use Illuminate\Routing\Controller;
+use Illuminate\Support\Str;
+use Modules\Company\Models\Company;
class CompanyController extends Controller
{
/**
- * Display a listing of the resource.
- * @return Renderable
+ * Display companies.
*/
public function index()
{
- return view('company::index');
+ return view('company::index', [
+ 'companies' => Company::withCount(['users', 'warehouses', 'licenseKeys'])->latest('id')->paginate(20),
+ ]);
}
/**
- * Show the form for creating a new resource.
- * @return Renderable
- */
- public function create()
- {
- return view('company::create');
- }
-
- /**
- * Store a newly created resource in storage.
- * @param Request $request
- * @return Renderable
+ * Create a company tenant.
*/
public function store(Request $request)
{
- //
- }
+ $data = $request->validate([
+ 'name' => ['required', 'string', 'max:255'],
+ 'billing_email' => ['nullable', 'email', 'max:255'],
+ 'status' => ['required', 'in:active,suspended'],
+ ]);
- /**
- * Show the specified resource.
- * @param int $id
- * @return Renderable
- */
- public function show($id)
- {
- return view('company::show');
- }
+ Company::create([
+ ...$data,
+ 'slug' => Str::slug($data['name']),
+ 'timezone' => 'Europe/London',
+ ]);
- /**
- * Show the form for editing the specified resource.
- * @param int $id
- * @return Renderable
- */
- public function edit($id)
- {
- return view('company::edit');
- }
-
- /**
- * Update the specified resource in storage.
- * @param Request $request
- * @param int $id
- * @return Renderable
- */
- public function update(Request $request, $id)
- {
- //
- }
-
- /**
- * Remove the specified resource from storage.
- * @param int $id
- * @return Renderable
- */
- public function destroy($id)
- {
- //
+ return back()->with('status', 'Company created.');
}
}
diff --git a/Modules/Platform/app/Models/Company.php b/Modules/Company/Models/Company.php
similarity index 92%
rename from Modules/Platform/app/Models/Company.php
rename to Modules/Company/Models/Company.php
index a05711f8..3457f8a3 100644
--- a/Modules/Platform/app/Models/Company.php
+++ b/Modules/Company/Models/Company.php
@@ -1,18 +1,19 @@
Hello World
-
-
- This view is loaded from module: {!! config('company.name') !!}
-
-@endsection
+
+
+
+
+
Create company
+
+
+
+
+
+
+ | Name |
+ Users |
+ Warehouses |
+ Licences |
+ Status |
+
+
+
+ @foreach ($companies as $company)
+
+ | {{ $company->name }} |
+ {{ $company->users_count }} |
+ {{ $company->warehouses_count }} |
+ {{ $company->license_keys_count }} |
+ {{ $company->is_system_company ? 'System' : $company->status }} |
+
+ @endforeach
+
+
+
+ {{ $companies->links() }}
+
+
diff --git a/Modules/Company/Resources/views/layouts/master.blade.php b/Modules/Company/Resources/views/layouts/master.blade.php
deleted file mode 100644
index a937600e..00000000
--- a/Modules/Company/Resources/views/layouts/master.blade.php
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
- Module Company
-
- {{-- Laravel Mix - CSS File --}}
- {{-- --}}
-
-
-
- @yield('content')
-
- {{-- Laravel Mix - JS File --}}
- {{-- --}}
-
-
diff --git a/Modules/Company/Routes/web.php b/Modules/Company/Routes/web.php
index 58a46570..0ba7ab0a 100644
--- a/Modules/Company/Routes/web.php
+++ b/Modules/Company/Routes/web.php
@@ -11,6 +11,12 @@
|
*/
-Route::prefix('company')->group(function() {
- Route::get('/', 'CompanyController@index');
-});
+use Modules\Company\Http\Controllers\CompanyController;
+
+Route::middleware(['auth', 'verified', 'tenant.assigned', 'platform.admin'])
+ ->prefix('admin')
+ ->name('platform.')
+ ->group(function (): void {
+ Route::get('/companies', [CompanyController::class, 'index'])->name('companies.index');
+ Route::post('/companies', [CompanyController::class, 'store'])->name('companies.store');
+ });
diff --git a/Modules/Helpdesk/Database/factories/TicketFactory.php b/Modules/Helpdesk/Database/factories/TicketFactory.php
index 4ccf4aff..04fdff77 100644
--- a/Modules/Helpdesk/Database/factories/TicketFactory.php
+++ b/Modules/Helpdesk/Database/factories/TicketFactory.php
@@ -4,7 +4,7 @@ declare(strict_types=1);
namespace Modules\Helpdesk\Database\factories;
-use App\Models\Company;
+use Modules\Company\Models\Company
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Facades\Schema;
diff --git a/Modules/Helpdesk/Models/Category.php b/Modules/Helpdesk/Models/Category.php
index 2d643b37..936800b9 100644
--- a/Modules/Helpdesk/Models/Category.php
+++ b/Modules/Helpdesk/Models/Category.php
@@ -4,17 +4,15 @@ declare(strict_types=1);
namespace Modules\Helpdesk\Models;
-use App\Models\Company;
use App\Models\User;
-use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
+use Modules\Company\Models\Company;
final class Category extends Model
{
- use HasFactory;
protected $table = 'helpdesk_categories';
diff --git a/Modules/Helpdesk/Models/Project.php b/Modules/Helpdesk/Models/Project.php
index 8004fe8c..c0308bdc 100644
--- a/Modules/Helpdesk/Models/Project.php
+++ b/Modules/Helpdesk/Models/Project.php
@@ -4,8 +4,7 @@ declare(strict_types=1);
namespace Modules\Helpdesk\Models;
-use App\Models\Company;
-use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Modules\Company\Models\Company;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
@@ -13,7 +12,6 @@ use Illuminate\Database\Eloquent\SoftDeletes;
final class Project extends Model
{
- use HasFactory;
use SoftDeletes;
protected $table = 'helpdesk_projects';
diff --git a/Modules/Helpdesk/Models/Team.php b/Modules/Helpdesk/Models/Team.php
index 9152efec..52536a3d 100644
--- a/Modules/Helpdesk/Models/Team.php
+++ b/Modules/Helpdesk/Models/Team.php
@@ -4,7 +4,7 @@ declare(strict_types=1);
namespace Modules\Helpdesk\Models;
-use App\Models\Company;
+use Modules\Company\Models\Company;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
diff --git a/Modules/Helpdesk/Tests/Feature/TicketConversationTest.php b/Modules/Helpdesk/Tests/Feature/TicketConversationTest.php
index 061c3f8b..872890f0 100644
--- a/Modules/Helpdesk/Tests/Feature/TicketConversationTest.php
+++ b/Modules/Helpdesk/Tests/Feature/TicketConversationTest.php
@@ -4,7 +4,7 @@ declare(strict_types=1);
namespace Modules\Helpdesk\Tests\Feature;
-use App\Models\Company;
+use Modules\Company\Models\Company
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Mail;
diff --git a/Modules/InternalApi/app/Http/Controllers/CompanySummaryController.php b/Modules/InternalApi/app/Http/Controllers/CompanySummaryController.php
index cdb39d47..81150dc0 100644
--- a/Modules/InternalApi/app/Http/Controllers/CompanySummaryController.php
+++ b/Modules/InternalApi/app/Http/Controllers/CompanySummaryController.php
@@ -3,7 +3,7 @@
namespace Modules\InternalApi\app\Http\Controllers;
use App\Http\Controllers\Controller;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
class CompanySummaryController extends Controller
{
diff --git a/Modules/Platform/app/Http/Controllers/CompanyController.php b/Modules/Platform/app/Http/Controllers/CompanyController.php
deleted file mode 100644
index 8f91ecbf..00000000
--- a/Modules/Platform/app/Http/Controllers/CompanyController.php
+++ /dev/null
@@ -1,41 +0,0 @@
- Company::withCount(['users', 'warehouses', 'licenseKeys'])->latest('id')->paginate(20),
- ]);
- }
-
- /**
- * Create a company tenant.
- */
- public function store(Request $request)
- {
- $data = $request->validate([
- 'name' => ['required', 'string', 'max:255'],
- 'billing_email' => ['nullable', 'email', 'max:255'],
- 'status' => ['required', 'in:active,suspended'],
- ]);
-
- Company::create([
- ...$data,
- 'slug' => Str::slug($data['name']),
- 'timezone' => 'Europe/London',
- ]);
-
- return back()->with('status', 'Company created.');
- }
-}
diff --git a/Modules/Platform/app/Http/Controllers/LicenseKeyController.php b/Modules/Platform/app/Http/Controllers/LicenseKeyController.php
index 3e8abf0e..b7115f90 100644
--- a/Modules/Platform/app/Http/Controllers/LicenseKeyController.php
+++ b/Modules/Platform/app/Http/Controllers/LicenseKeyController.php
@@ -4,7 +4,7 @@ namespace Modules\Platform\app\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
use Modules\Platform\app\Models\LicenseKey;
class LicenseKeyController extends Controller
diff --git a/Modules/Platform/app/Http/Controllers/PaymentController.php b/Modules/Platform/app/Http/Controllers/PaymentController.php
index 4103960c..df91d120 100644
--- a/Modules/Platform/app/Http/Controllers/PaymentController.php
+++ b/Modules/Platform/app/Http/Controllers/PaymentController.php
@@ -4,7 +4,7 @@ namespace Modules\Platform\app\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
use Modules\Platform\app\Models\Payment;
class PaymentController extends Controller
diff --git a/Modules/Platform/app/Http/Controllers/PlatformDashboardController.php b/Modules/Platform/app/Http/Controllers/PlatformDashboardController.php
index b046aef8..caa75ff4 100644
--- a/Modules/Platform/app/Http/Controllers/PlatformDashboardController.php
+++ b/Modules/Platform/app/Http/Controllers/PlatformDashboardController.php
@@ -5,7 +5,7 @@ namespace Modules\Platform\app\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Schema;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
use Modules\Platform\app\Models\LicenseKey;
use Modules\Platform\app\Models\Payment;
use Modules\Platform\app\Models\PlatformPrice;
diff --git a/Modules/Platform/app/Http/Controllers/StripeWebhookController.php b/Modules/Platform/app/Http/Controllers/StripeWebhookController.php
index c870b28a..6816772c 100644
--- a/Modules/Platform/app/Http/Controllers/StripeWebhookController.php
+++ b/Modules/Platform/app/Http/Controllers/StripeWebhookController.php
@@ -4,7 +4,7 @@ namespace Modules\Platform\app\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
use Modules\Platform\app\Models\Payment;
class StripeWebhookController extends Controller
diff --git a/Modules/Platform/app/Models/LicenseKey.php b/Modules/Platform/app/Models/LicenseKey.php
index fc1ce73a..cdc1334e 100644
--- a/Modules/Platform/app/Models/LicenseKey.php
+++ b/Modules/Platform/app/Models/LicenseKey.php
@@ -5,6 +5,7 @@ namespace Modules\Platform\app\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Str;
+use Modules\Company\Models\Company;
class LicenseKey extends Model
{
diff --git a/Modules/Platform/app/Models/Payment.php b/Modules/Platform/app/Models/Payment.php
index 056cc7ca..2cea8549 100644
--- a/Modules/Platform/app/Models/Payment.php
+++ b/Modules/Platform/app/Models/Payment.php
@@ -4,6 +4,7 @@ namespace Modules\Platform\app\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Modules\Company\Models\Company;
class Payment extends Model
{
diff --git a/Modules/Platform/database/seeders/PlatformSeeder.php b/Modules/Platform/database/seeders/PlatformSeeder.php
index eaa61e3a..a00d7d9a 100644
--- a/Modules/Platform/database/seeders/PlatformSeeder.php
+++ b/Modules/Platform/database/seeders/PlatformSeeder.php
@@ -6,7 +6,7 @@ use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
use Modules\Warehouse\app\Models\Warehouse;
use Modules\Warehouse\app\Models\WarehouseValidationRule;
use Spatie\Permission\Models\Role;
diff --git a/Modules/Platform/resources/views/companies/index.blade.php b/Modules/Platform/resources/views/companies/index.blade.php
deleted file mode 100644
index f9974c2c..00000000
--- a/Modules/Platform/resources/views/companies/index.blade.php
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
Create company
-
-
-
-
-
-
- | Name |
- Users |
- Warehouses |
- Licences |
- Status |
-
-
-
- @foreach ($companies as $company)
-
- | {{ $company->name }} |
- {{ $company->users_count }} |
- {{ $company->warehouses_count }} |
- {{ $company->license_keys_count }} |
- {{ $company->is_system_company ? 'System' : $company->status }} |
-
- @endforeach
-
-
-
- {{ $companies->links() }}
-
-
diff --git a/Modules/Platform/routes/web.php b/Modules/Platform/routes/web.php
index 48356b83..217792e3 100644
--- a/Modules/Platform/routes/web.php
+++ b/Modules/Platform/routes/web.php
@@ -1,7 +1,7 @@
name('platform.')
->group(function (): void {
Route::get('/', PlatformDashboardController::class)->name('dashboard');
- Route::get('/companies', [CompanyController::class, 'index'])->name('companies.index');
- Route::post('/companies', [CompanyController::class, 'store'])->name('companies.store');
Route::get('/licenses', [LicenseKeyController::class, 'index'])->name('licenses.index');
Route::post('/licenses', [LicenseKeyController::class, 'store'])->name('licenses.store');
Route::get('/payments', [PaymentController::class, 'index'])->name('payments.index');
diff --git a/Modules/Platform/tests/Feature/LicenseKeyTest.php b/Modules/Platform/tests/Feature/LicenseKeyTest.php
index 7b1452b5..063525f0 100644
--- a/Modules/Platform/tests/Feature/LicenseKeyTest.php
+++ b/Modules/Platform/tests/Feature/LicenseKeyTest.php
@@ -3,7 +3,7 @@
namespace Modules\Platform\tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
use Modules\Platform\app\Models\LicenseKey;
use Tests\TestCase;
diff --git a/Modules/Platform/tests/Feature/PlatformAccessTest.php b/Modules/Platform/tests/Feature/PlatformAccessTest.php
index 28cb93c4..e4f909ef 100644
--- a/Modules/Platform/tests/Feature/PlatformAccessTest.php
+++ b/Modules/Platform/tests/Feature/PlatformAccessTest.php
@@ -4,7 +4,7 @@ namespace Modules\Platform\tests\Feature;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
use Tests\TestCase;
class PlatformAccessTest extends TestCase
diff --git a/Modules/Warehouse/app/Models/Warehouse.php b/Modules/Warehouse/app/Models/Warehouse.php
index 5d66bd60..361ec75c 100644
--- a/Modules/Warehouse/app/Models/Warehouse.php
+++ b/Modules/Warehouse/app/Models/Warehouse.php
@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Str;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
class Warehouse extends Model
{
diff --git a/Modules/Warehouse/tests/Feature/WarehouseIsolationTest.php b/Modules/Warehouse/tests/Feature/WarehouseIsolationTest.php
index 08aec28b..53688607 100644
--- a/Modules/Warehouse/tests/Feature/WarehouseIsolationTest.php
+++ b/Modules/Warehouse/tests/Feature/WarehouseIsolationTest.php
@@ -4,7 +4,7 @@ namespace Modules\Warehouse\tests\Feature;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
use Modules\Platform\app\Models\LicenseKey;
use Modules\Warehouse\app\Models\Warehouse;
use Tests\TestCase;
diff --git a/app/Actions/Fortify/CreateNewUser.php b/app/Actions/Fortify/CreateNewUser.php
index 0119989a..8578db89 100644
--- a/app/Actions/Fortify/CreateNewUser.php
+++ b/app/Actions/Fortify/CreateNewUser.php
@@ -9,7 +9,7 @@ use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
use Laravel\Fortify\Contracts\CreatesNewUsers;
-use Modules\Platform\app\Models\Company;
+use Modules\Company\Models\Company;
class CreateNewUser implements CreatesNewUsers
{
diff --git a/app/Models/Company.php b/app/Models/Company.php
deleted file mode 100644
index f855dc7f..00000000
--- a/app/Models/Company.php
+++ /dev/null
@@ -1,5 +0,0 @@
-