Files
portal-api/app/Events/TicketReplyCreated.php
baodev0 520f21cb11 feat: add GeneratesUniqueSlug class for unique slug generation
feat: create PostCategoryFactory for generating post category data

feat: create PostFactory for generating post data

feat: add retry_requested_at column to services table

feat: add vcenter provisioning fields to products table

feat: add module_host_id to os table

feat: create email_notification_templates table for email templates

feat: add scenario and format fields to template table

feat: add admin fields to transactions table

fix: update ticket table columns and types

feat: add uuid to ticket table and backfill existing records

fix: make ticket_reply user_id nullable

feat: create notifications table for user notifications

fix: make ticket uuid nullable

feat: create post_categories table for blog categories

feat: create posts table for blog posts

feat: add invoice email template for PDF generation
2026-05-25 15:39:42 +07:00

44 lines
1.1 KiB
PHP

<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class TicketReplyCreated implements ShouldBroadcastNow
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public function __construct(
public readonly string $ticketNum,
public readonly int $customerId,
public readonly int $replyId,
) {}
public function broadcastOn(): array
{
return [
new Channel('ticket.' . $this->ticketNum),
new Channel('notifications.client.' . $this->customerId),
new Channel('admin-notifications'),
];
}
public function broadcastAs(): string
{
return 'ticket.reply.created';
}
public function broadcastWith(): array
{
return [
'ticket_num' => $this->ticketNum,
'customer_id' => $this->customerId,
'reply_id' => $this->replyId,
];
}
}