<?php
/*
    * Created by VahabDev in Aparat Live
    * Website: https://pourfi.ir
    * Aparat Live: https://www.aparat.com/vahabdev/live
    * Aparat Channel: https://www.aparat.com/vahabdev
    * Rubika Channel: https://rubika.ir/vahabdev
    * Donate: https://reymit.ir/vahabdev
    * Telegram: https://t.me/vahabdev
*/


namespace App\Filament\Resources\Tickets\Pages;

use App\Filament\Resources\Tickets\TicketResource;
use Filament\Actions\Action;
use Filament\Actions\EditAction;
use Filament\Forms\Components\RichEditor;
use Filament\Resources\Pages\ViewRecord;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\Hidden;

class ViewTicket extends ViewRecord
{
    protected static string $resource = TicketResource::class;

    protected function getHeaderActions(): array
    {
        return [
            // دکمه ویرایش که از قبل بود
            EditAction::make(),

            // دکمه جدید برای ثبت پاسخ مستقیم
            Action::make('reply')
                ->label('ثبت پاسخ ادمین')
                ->color('success')
                ->icon('heroicon-o-chat-bubble-left-right')
                ->modalHeading('ارسال پاسخ به تیکت')
                ->form([
                    RichEditor::make('message')
                        ->label('متن پاسخ')
                        ->required(),
                ])
                ->action(function (array $data) {
                    // ثبت پاسخ در جدول TicketReplay
                    $this->record->replays()->create([
                        'message' => $data['message'],
                        'is_admin' => true,
                        'date' => now(),
                    ]);

                    // تغییر وضعیت تیکت اصلی
                    $this->record->update([
                        'status' => 'admin_replay',
                        'last_replay' => now(),
                    ]);

                    // ۴. هدایت به صفحه لیست (Index)
                    return redirect()->to(TicketResource::getUrl('index'));
                })
                ->successNotificationTitle('پاسخ شما با موفقیت ثبت شد'),
        ];
    }
}
