<?php

namespace App\Services\Shipment;

use App\Models\Carrier;

class ShipmentCarrierFallbackService
{
    /**
     * @var array<string, string>
     */
    private const FALLBACK_MAP = [
        'delhivery' => 'ekart',
        'ekart' => 'delhivery',
    ];

    public function fallbackCarrier(Carrier $primary): ?Carrier
    {
        $fallbackSlug = self::FALLBACK_MAP[$primary->slug] ?? null;
        if ($fallbackSlug === null) {
            return null;
        }

        $fallback = Carrier::query()
            ->where('slug', $fallbackSlug)
            ->where('enabled', true)
            ->first();

        if (!$fallback || !$fallback->isAutomatic()) {
            return null;
        }

        if ($fallback->id === $primary->id) {
            return null;
        }

        return $fallback;
    }
}
