feat(packages): implement package-based business model

This commit is contained in:
Codex Agent
2025-09-26 22:13:56 +02:00
parent 6fc36ebaf4
commit 0a643c3e4d
54 changed files with 3301 additions and 282 deletions

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\TenantPackage;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
class TenantPackageController extends Controller
{
public function index(Request $request): JsonResponse
{
$tenant = $request->attributes->get('tenant');
if (!$tenant) {
return response()->json(['error' => 'Tenant not found.'], 404);
}
$packages = TenantPackage::where('tenant_id', $tenant->id)
->with('package')
->orderBy('created_at', 'desc')
->get();
$packages->each(function ($package) {
$package->remaining_events = $package->package->max_events_per_year - $package->used_events;
$package->package_limits = $package->package->getAttributes(); // Or custom accessor for limits
});
return response()->json([
'data' => $packages,
'active_package' => $tenant->activeResellerPackage ? $tenant->activeResellerPackage->load('package') : null,
'message' => 'Tenant packages loaded successfully.',
]);
}
}