ultimatepos/app/Modules/Maintenance/Http/Controllers/Api/V1/MaintenanceNotificationController.php

57 lines
1.7 KiB
PHP

<?php
namespace App\Modules\Maintenance\Http\Controllers\Api\V1;
use App\Http\Controllers\Controller;
use App\Modules\Maintenance\Models\MaintenanceNotification;
use App\Modules\Maintenance\Services\MaintenanceNotificationService;
use App\Modules\Maintenance\Traits\ResolvesBusiness;
use Illuminate\Http\Request;
class MaintenanceNotificationController extends Controller
{
use ResolvesBusiness;
public function index(Request $request)
{
$business = $this->resolveBusiness($request);
$user = $request->user();
if (! $business || ! $user) {
return $this->jsonError('کسب‌وکار یافت نشد.', 404);
}
$items = MaintenanceNotification::where('business_id', $business->id)
->where('user_id', $user->id)
->orderByDesc('created_at')
->limit(50)
->get();
return $this->jsonSuccess(['items' => $items]);
}
public function unread(Request $request)
{
$business = $this->resolveBusiness($request);
$user = $request->user();
if (! $business || ! $user) {
return $this->jsonError('کسب‌وکار یافت نشد.', 404);
}
return $this->jsonSuccess([
'items' => MaintenanceNotificationService::unreadForUser($business, $user),
]);
}
public function markRead(Request $request, MaintenanceNotification $notification)
{
$user = $request->user();
if (! $user || $notification->user_id !== $user->id) {
return $this->jsonError('دسترسی ندارید.', 403);
}
MaintenanceNotificationService::markRead($notification);
return $this->jsonSuccess(null, 'اعلان خوانده شد.');
}
}