<?php

namespace App\Listeners;

use App\Events\ProjectCreated;
use App\Services\SlackNotificationService;
use Illuminate\Support\Facades\Log;

class SendSlackProjectNotification
{
    public function handle(ProjectCreated $event)
    {
        $project = $event->project;
        $userId = $project->created_by ?? $project->user_id ?? createdBy();

        if (isNotificationTemplateEnabled('Project Created', 'slack', $userId)) {
            try {
                $data = [
                    'user_name' => $project->user->name ?? 'User',
                    'project_name' => $project->name,
                    'project_status' => $project->status ?? 'Active',
                    'project_due_date' => $project->end_date ? $project->end_date->format('Y-m-d') : 'Not set',
                    'app_name' => config('app.name', 'TaskGo')
                ];

                SlackNotificationService::send('Project Created', $data, $userId);
            } catch (\Exception $e) {
                Log::error("ProjectCreated error from slack listener: " . $e->getMessage());
            }
        }
    }
}
