Add Campaigns module for grouping short links.
Deploy Ladill Link / deploy (push) Successful in 1m26s

Let accounts organise links by promo or launch, attach or detach links, and view combined click totals from the sidebar.
This commit is contained in:
isaacclad
2026-07-16 20:43:11 +00:00
parent 32a174c826
commit f45fdcd159
13 changed files with 702 additions and 2 deletions
+11
View File
@@ -3,6 +3,7 @@
use App\Http\Controllers\Auth\SsoLoginController;
use App\Http\Controllers\Link\AfiaController;
use App\Http\Controllers\Link\AnalyticsController;
use App\Http\Controllers\Link\CampaignController;
use App\Http\Controllers\Link\CustomDomainController;
use App\Http\Controllers\Link\LinkController;
use App\Http\Controllers\Link\OverviewController;
@@ -36,6 +37,16 @@ Route::middleware(['auth', 'platform.session'])->group(function () {
Route::get('/dashboard', [OverviewController::class, 'index'])->name('link.dashboard');
Route::get('/analytics', [AnalyticsController::class, 'index'])->name('link.analytics.index');
Route::get('/campaigns', [CampaignController::class, 'index'])->name('link.campaigns.index');
Route::get('/campaigns/create', [CampaignController::class, 'create'])->name('link.campaigns.create');
Route::post('/campaigns', [CampaignController::class, 'store'])->name('link.campaigns.store');
Route::get('/campaigns/{campaign}', [CampaignController::class, 'show'])->name('link.campaigns.show');
Route::patch('/campaigns/{campaign}', [CampaignController::class, 'update'])->name('link.campaigns.update');
Route::delete('/campaigns/{campaign}', [CampaignController::class, 'destroy'])->name('link.campaigns.destroy');
Route::post('/campaigns/{campaign}/attach', [CampaignController::class, 'attach'])->name('link.campaigns.attach');
Route::delete('/campaigns/{campaign}/links/{link}', [CampaignController::class, 'detach'])->name('link.campaigns.detach');
Route::get('/domains', [CustomDomainController::class, 'index'])->name('link.domains.index');
Route::post('/domains', [CustomDomainController::class, 'store'])->name('link.domains.store');
Route::post('/domains/{customDomain}/verify', [CustomDomainController::class, 'verify'])->name('link.domains.verify');