57 lines
1.7 KiB
PHP
57 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Modules\Maintenance\Http\Controllers\Api\V1;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Modules\Maintenance\Models\MaintenanceNotification;
|
|
use Modules\Maintenance\Services\MaintenanceNotificationService;
|
|
use 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, 'اعلان خوانده شد.');
|
|
}
|
|
}
|