<?php

namespace App\Services;

use App\Models\Order;
use App\Models\SmsTemplate;
use App\Models\User;
use App\Models\WhatsappTemplates;
use App\Utility\SmsUtility;
use App\Utility\WhatsappUtility;
use Illuminate\Support\Facades\Log;

class OrderTrackingNotificationService
{
    public function sendIfEnabled(Order $order): void
    {
        $order = $order->fresh();
        if (!$order) {
            return;
        }

        $customer = User::find($order->user_id);
        if (!$customer) {
            return;
        }

        $whatsappTemplate = WhatsappTemplates::where('identifier', 'order_tracking_details')->first();
        if ($whatsappTemplate && $whatsappTemplate->is_active == 1) {
            try {
                WhatsappUtility::order_tracking_details($customer, $order);
            } catch (\Exception $e) {
                Log::error('WhatsApp order_tracking_details sending failed: ' . $e->getMessage());
            }
        }

        $smsTemplate = SmsTemplate::where('identifier', 'order_tracking_details')
            ->where('is_active', true)
            ->first();
        if ($smsTemplate) {
            try {
                SmsUtility::order_tracking_details($customer, $order);
            } catch (\Exception $e) {
                Log::error('SMS order_tracking_details sending failed: ' . $e->getMessage());
            }
        }
    }
}
