Build Laravel 13 ticket assistant with Docker, Livewire admin, and helpdesk scraper command

This commit is contained in:
SitiWeb
2026-04-29 13:11:39 +02:00
parent 141a1a3c9b
commit 3c4572bb12
58 changed files with 9377 additions and 455 deletions

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Livewire\Admin;
use App\Services\AdminArticleService;
use Livewire\Component;
use Livewire\WithPagination;
class ArticleManager extends Component
{
use WithPagination;
public string $title = '';
public string $content = '';
public function save(AdminArticleService $service): void
{
$this->validate([
'title' => ['required', 'string', 'max:255'],
'content' => ['required', 'string', 'max:12000'],
]);
$service->create($this->title, $this->content);
$this->reset(['title', 'content']);
$this->dispatch('article-saved');
session()->flash('success', 'Article opgeslagen en embedding wordt automatisch verwerkt.');
}
public function render(AdminArticleService $service)
{
return view('livewire.admin.article-manager', [
'articles' => $service->paginate(10),
]);
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Livewire\Admin;
use App\Services\AdminDashboardService;
use Livewire\Component;
class DashboardOverview extends Component
{
public array $stats = [];
public function mount(AdminDashboardService $service): void
{
$this->stats = $service->stats();
}
public function render(AdminDashboardService $service)
{
return view('livewire.admin.dashboard-overview', [
'recentTickets' => $service->recentTickets(),
'recentDecisions' => $service->recentDecisions(),
]);
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Livewire\Admin;
use App\Services\AdminTicketService;
use Livewire\Component;
use Livewire\WithPagination;
class TicketMonitor extends Component
{
use WithPagination;
public function render(AdminTicketService $service)
{
return view('livewire.admin.ticket-monitor', [
'tickets' => $service->paginateWithDecision(10),
]);
}
}