type ProductAddToCartBarProps = {
    show: boolean;
    productId: string | number;
    totalPhotos: number;
    totalQuantity: number;
    addingToCart: boolean;
    onAddToCart: () => void;
    isEditMode?: boolean;
};

export default function ProductAddToCartBar({
                                                show,
                                                productId,
                                                totalPhotos,
                                                totalQuantity,
                                                addingToCart,
                                                onAddToCart,
                                                isEditMode = false,
                                            }: ProductAddToCartBarProps) {
    if (!show) return null;

    const numericProductId = Number(productId);

    const isMonthlyOrDeskCalendar =
        numericProductId === 5 || numericProductId === 6;

    const isMagneticPhotos = numericProductId === 2;

    // التقاويم تحتاج عدد صور مختلف يساوي 12
    const needs12Photos =
        isMonthlyOrDeskCalendar && totalPhotos !== 12;

    // المغناطيس يحتاج مجموع الكميات يساوي 6 أو أكثر
    const needsMin6Photos =
        isMagneticPhotos && totalQuantity < 6;

    const isDisabled =
        addingToCart || needs12Photos || needsMin6Photos;

    return (
        <div className="cursor-pointer px-4">
            {numericProductId === 5 && (
                <div className="mb-4 p-3 bg-blue-50 border border-blue-200 rounded-lg text-center">
                    <p className="text-sm text-blue-800">
                        يجب إضافة{" "}
                        <span className="font-bold">12 صورة</span>{" "}
                        للتقويم الشهري

                        {totalPhotos !== 12 && (
                            <span className="block mt-1 text-red-600">
                                لديك {totalPhotos} صورة حالياً
                            </span>
                        )}
                    </p>
                </div>
            )}

            {numericProductId === 6 && (
                <div className="mb-4 p-3 bg-blue-50 border border-blue-200 rounded-lg text-center">
                    <p className="text-sm text-blue-800">
                        يجب إضافة{" "}
                        <span className="font-bold">12 صورة</span>{" "}
                        لتقويم المكتب

                        {totalPhotos !== 12 && (
                            <span className="block mt-1 text-red-600">
                                لديك {totalPhotos} صورة حالياً
                            </span>
                        )}
                    </p>
                </div>
            )}

            {numericProductId === 2 && totalQuantity < 6 && (
                <div className="mb-4 p-3 bg-blue-50 border border-blue-200 rounded-lg text-center">
                    <p className="text-sm text-blue-800">
                        يجب أن يكون مجموع الصور والنسخ{" "}
                        <span className="font-bold">6 على الأقل</span>

                        <span className="block mt-1 text-red-600">
                            لديك {totalQuantity} نسخة حالياً
                        </span>
                    </p>
                </div>
            )}

            <button
                onClick={onAddToCart}
                disabled={isDisabled}
                className="font-bold cursor-pointer fixed bottom-2 left-1/2 transform -translate-x-1/2 block login-btn transition mt-8 bg-primary text-white px-6 w-[343px] h-[48px] py-3 rounded-full z-20 disabled:opacity-60 disabled:cursor-not-allowed"
            >
                {addingToCart ? (
                    <>
                        {isEditMode
                            ? "جاري حفظ التعديلات..."
                            : "جاري الإضافة..."}
                    </>
                ) : needs12Photos ? (
                    <>أضف 12 صورة للمتابعة</>
                ) : needsMin6Photos ? (
                    <>أكمل 6 نسخ على الأقل للمتابعة</>
                ) : (
                    <span>
                        {isEditMode
                            ? "حفظ التعديلات"
                            : "أضف إلى السلة"}
                    </span>
                )}
            </button>
        </div>
    );
}