<?php

namespace App\Notifications;

use App\Models\FormSubmission;

class FormSubmittedNotification extends HrmsNotification
{
    public function __construct(
        public FormSubmission $submission
    ) {}

    public function notificationCategory(): string
    {
        return 'forms';
    }

    public function notificationSubject(): string
    {
        return 'Form submitted — ' . ($this->submission->form?->name ?? 'Form');
    }

    public function notificationLines(): array
    {
        return [
            ($this->submission->user?->name ?? 'An employee') . ' submitted a form.',
            'Form: ' . ($this->submission->form?->name ?? '—'),
            'Submitted: ' . $this->submission->created_at?->format('d M Y H:i'),
        ];
    }

    public function actionUrl(): ?string
    {
        return route('form-submissions.show', $this->submission);
    }

    public function actionLabel(): string
    {
        return 'View submission';
    }

    public function toArray(object $notifiable): array
    {
        return [
            'type' => 'form_submitted',
            'message' => ($this->submission->user?->name ?? 'Someone') . ' submitted ' . ($this->submission->form?->name ?? 'a form') . '.',
            'submission_id' => $this->submission->id,
            'url' => route('form-submissions.show', $this->submission),
        ];
    }
}
