<?php

namespace App\Notifications;

use App\Models\Resignation;

class ResignationStatusChangedNotification extends HrmsNotification
{
    public function __construct(
        public Resignation $resignation,
        public string $status
    ) {}

    public function notificationCategory(): string
    {
        return 'resignation';
    }

    public function notificationSubject(): string
    {
        return 'Your resignation status: ' . ucfirst($this->status);
    }

    public function notificationLines(): array
    {
        return [
            'Your resignation has been updated to: ' . ucfirst($this->status) . '.',
            'Resignation date: ' . $this->resignation->resignation_date?->format('d M Y'),
            'Last working day: ' . ($this->resignation->last_working_date?->format('d M Y') ?? 'Not set'),
        ];
    }

    public function actionUrl(): ?string
    {
        return route('resignations.index');
    }

    public function actionLabel(): string
    {
        return 'View resignation';
    }

    public function toArray(object $notifiable): array
    {
        return [
            'type' => 'resignation_status_changed',
            'message' => 'Your resignation status was updated to ' . $this->status . '.',
            'status' => $this->status,
            'resignation_id' => $this->resignation->id,
            'url' => route('resignations.index'),
        ];
    }
}
