"use client"; import React, { useState } from "react"; import { motion, AnimatePresence } from "motion/react"; import { useSettingsStore } from "../lib/store/settingsStore"; import { Dog, Cat, ChevronLeft, ChevronRight, ShieldCheck, Activity, Bone, Sparkles, Pill, Sparkle, Check } from "lucide-react"; import { toPersian, cn } from "../lib/utils"; import { useRouter } from "next/navigation"; import { useUserStore } from "../lib/store/userStore"; import { useUIStore } from "../lib/store/uiStore"; import { usePetStore } from "../lib/store/usePetStore"; interface SmartAdvisorProps { onComplete?: (data: any) => void; } const CURRENT_SYMPTOMS = [ { id: "joint_pain", label: "درد مفاصل و لنگیدن", condition: "درد مفاصل" }, { id: "hair_loss", label: "ریزش مو، خارش و خشکی پوست", condition: "ریزش مو" }, { id: "diarrhea", label: "اسهال، یبوست و مشکلات گوارشی", condition: "اسهال" }, { id: "appetite", label: "بی‌اشتهایی و کاهش وزن", condition: "بی‌اشتهایی" }, { id: "dental", label: "جرم دندان و بوی بد دهان", condition: "جرم دندان" }, { id: "eye", label: "ترشحات یا مشکلات چشم", condition: "چشم" }, { id: "puppy_growth", label: "رشد سریع و تعادل استخوانی", condition: "رشد سریع توله‌سگ" }, { id: "tendon", label: "سفتی عضلات و ضعف تاندون", condition: "تاندون" }, ]; const MEDICAL_HISTORIES = [ { id: "joint_surgery", label: "سابقه جراحی مفاصل/استخوان", condition: "جراحی مفاصل" }, { id: "recent_birth", label: "زایمان اخیر / شیردهی فعال", condition: "زایمان اخیر" }, { id: "pregnancy", label: "دوران بارداری", condition: "بارداری" }, { id: "weakness", label: "ضعف بعد از بیماری / نقاهت", condition: "ضعف بعد از بیماری" }, { id: "heart", label: "نارسایی یا حساسیت قلبی", condition: "نارسایی قلبی" }, { id: "parasite", label: "سابقه آلودگی انگلی", condition: "آلودگی انگلی" }, ]; export default function SmartAdvisor({ onComplete, rules = [] }: SmartAdvisorProps & { rules?: any[] }) { const router = useRouter(); const { isLoggedIn } = useUserStore(); const setLoginModalOpen = useUIStore(state => state.setLoginModalOpen); const { addPet, setActivePet } = usePetStore(); const texts = useSettingsStore(state => state.texts); const getText = useSettingsStore(state => state.getText); const [step, setStep] = useState(1); // Step 1 Data const [name, setName] = useState(""); const [type, setType] = useState<"سگ" | "گربه">("سگ"); const [breed, setBreed] = useState(""); const [showError, setShowError] = useState(false); const [shake, setShake] = useState(false); // Step 2 Data const [age, setAge] = useState(3); const [weight, setWeight] = useState(10); const [activityLevel, setActivityLevel] = useState<"کم" | "متوسط" | "زیاد">("متوسط"); // Step 3 Data (Symptoms) & Step 4 Data (History) const [currentSymptoms, setCurrentSymptoms] = useState([]); const [medicalConditions, setMedicalConditions] = useState([]); const handleNext = () => { if (step === 1) { if (!name.trim() || !breed.trim()) { setShowError(true); setShake(true); setTimeout(() => setShake(false), 500); return; } } setStep(s => s + 1); }; const handleBack = () => setStep(s => s - 1); const handleSubmit = () => { const combinedConditions = Array.from(new Set([...currentSymptoms, ...medicalConditions])); const data = { name, type, breed, age, weight, activityLevel, medicalConditions: combinedConditions }; if (onComplete) { onComplete(data); } else { if (!isLoggedIn) { setLoginModalOpen(true, data); } else { const newPet: any = { ...data, id: Date.now().toString(), reminders: [], logs: [], consumptions: [] }; addPet(newPet); setActivePet(newPet.id); router.push('/profile'); } } }; return (
{/* Header Title */}
{getText('advisor_badge', "سیستم پایش و تجویز هوشمند")}

{getText('advisor_title', "دستیار سلامت و الگوریتم پایش کانینا")}

{getText('advisor_subtitle', "با ثبت اطلاعات همدم خود در ۴ قدم ساده، از الگوریتم علمی کانینا برای تجویز دقیق مکمل و پایش سلامت بهره‌مند شوید.")}

{/* Value Proposition Cards (Explaining Why & How) */}

چرا ثبت شناسنامه؟

مکمل‌های دارویی کانینا غلیظ و تخصصی هستند؛ الگوریتم هوشمند ما بر اساس سن، وزن و جثه پت شما، دوز دقیق مصرفی روزانه را محاسبه می‌کند تا حداکثر اثرگذاری ایجاد شود.

تضمین ایمنی و عدم اوردوز

تطبیق علائم بالینی

با انتخاب علائمی مثل لنگیدن، ریزش مو، یا اسهال، موتور هوشمند ما دقیق‌ترین راهکار مکمل آلمانی مرتبط را به همراه دلایل علمی به شما پیشنهاد می‌دهد.

پیشنهاد هدفمند و تخصصی

پایش موجودی و یادآور

پس از ایجاد شناسنامه، زمان‌های مصرف مکمل‌ها تنظیم شده و سیستم قبل از اتمام دوره درمانی، پیام هشدار شارژ مجدد به شما ارسال خواهد کرد.

تکمیل منظم دوره درمان
{/* Progress Indicator */}
{step === 1 && (

{getText('advisor_step1_title', "گام اول: هویت بصری")}

{getText('advisor_step1_desc', "همدم شما رو با چه اسمی صدا می‌زنید؟")}

{ setName(e.target.value); if (e.target.value.trim() && breed.trim()) setShowError(false); }} placeholder={getText('advisor_pet_name_placeholder', "لوسی، تدی...")} className={cn( "w-full bg-white border rounded-2xl py-4 px-6 focus:ring-2 outline-none font-black text-lg font-vazir placeholder-medical-gray-500 text-medical-gray-900 transition-all", showError && !name.trim() ? "border-red-500 focus:ring-red-500/30" : "border-medical-gray-300 focus:ring-canina-blue/30 focus-visible:ring-4 focus-visible:ring-canina-blue/40" )} />
{ setBreed(e.target.value); if (name.trim() && e.target.value.trim()) setShowError(false); }} placeholder={getText('advisor_pet_breed_placeholder', "ژرمن، پرشین...")} className={cn( "w-full bg-white border rounded-2xl py-4 px-6 focus:ring-2 outline-none font-bold font-vazir placeholder-medical-gray-500 text-medical-gray-900 transition-all", showError && !breed.trim() ? "border-red-500 focus:ring-red-500/30" : "border-medical-gray-300 focus:ring-canina-blue/30 focus-visible:ring-4 focus-visible:ring-canina-blue/40" )} />
{getText('advisor_submit_btn', "ثبت هویت و ادامه")} {showError && (!name.trim() || !breed.trim()) && (

{getText('advisor_validation_warning', "⚠️ لطفاً ابتدا نام و نژاد پت را در بالا وارد کنید.")}

)}
)} {step === 2 && (

{getText('advisor_step2_title', "گام دوم: پایش فیزیکی")}

{getText('advisor_step2_desc', "اطلاعات فیزیکی دقیق به دوزبندی صحیح مکمل‌ها کمک می‌کند")}

{toPersian(age.toString())} سال
{toPersian(weight.toString())} kg
{["کم", "متوسط", "زیاد"].map(level => ( ))}
)} {step === 3 && (

{getText('advisor_step3_symptoms_title', "گام سوم: علائم بالینی فعلی")}

{getText('advisor_step3_symptoms_desc', "آیا همدم شما در حال حاضر هیچ‌کدام از علائم زیر را تجربه می‌کند؟")}

{CURRENT_SYMPTOMS.map((opt) => ( ))}
)} {step === 4 && (

{getText('advisor_step4_history_title', "گام چهارم: سوابق پزشکی و جراحی")}

{getText('advisor_step4_history_desc', "در صورت وجود سابقه جراحی، بارداری یا نارسایی، آن را مشخص کنید")}

{MEDICAL_HISTORIES.map((opt) => ( ))}
)}
); }