+ میخواهید بدانید کدام محصول برای پت شما مناسبتر است؟ +
++ تیم متخصص دامپزشکی کانینا ایران آماده پاسخگویی به سوالات شماست. +
+diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7a550fe --- /dev/null +++ b/.env.example @@ -0,0 +1,9 @@ +# GEMINI_API_KEY: Required for Gemini AI API calls. +# AI Studio automatically injects this at runtime from user secrets. +# Users configure this via the Secrets panel in the AI Studio UI. +GEMINI_API_KEY="MY_GEMINI_API_KEY" + +# APP_URL: The URL where this applet is hosted. +# AI Studio automatically injects this at runtime with the Cloud Run service URL. +# Used for self-referential links, OAuth callbacks, and API endpoints. +APP_URL="MY_APP_URL" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5a86d2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +node_modules/ +build/ +dist/ +coverage/ +.DS_Store +*.log +.env* +!.env.example diff --git a/BACKEND_INTEGRATION.md b/BACKEND_INTEGRATION.md new file mode 100644 index 0000000..ff8ec32 --- /dev/null +++ b/BACKEND_INTEGRATION.md @@ -0,0 +1,36 @@ +# Backend Integration Map | نقشه اتصال به بکبند 🏗️ + +این سند شامل تمامی نقاط اتصال (End-points) مورد نیاز برای عملیاتی کردن پلتفرم کانینا ایران است. + +## لیست TODOهای تزریق شده در کد: + +### ۱. سرویس محصولات (Product Service) +- **GET /api/products**: دریافت لیست محصولات با فیلتر نژاد، دستهبندی و جستجو. + +### ۲. مدیریت کاربران (User Store) +- **POST /api/auth/login**: ورود با موبایل یا تفکیک نقش (صاحب پت/همکار). +- **POST /api/auth/logout**: خروج از حساب کاربری. +- **PATCH /api/user/profile**: بروزرسانی اطلاعات پروفایل. +- **POST /api/user/addresses**: ثبت آدرس جدید. +- **PATCH /api/user/addresses/{id}**: ویرایش آدرس موجود. +- **DELETE /api/user/addresses/{id}**: حذف آدرس. +- **POST /api/user/addresses/{id}/set-default**: انتخاب آدرس پیشفرض. +- **POST /api/user/wallet/top-up**: شارژ کیف پول. + +### ۳. پرونده سلامت پت (Pet Store) +- **POST /api/pets**: ثبت پت جدید (صدور شناسنامه). +- **PATCH /api/pets/{id}**: ویرایش اطلاعات پت. +- **DELETE /api/pets/{id}**: حذف پروفایل پت. +- **POST /api/pets/{petId}/reminders**: افزودن یادآور جدید. +- **POST /api/pets/{petId}/reminders/{reminderId}/toggle**: ثبت انجام یادآور (کاهش موجودی انبار شخصی). +- **POST /api/pets/{petId}/health-logs**: ثبت گزارش سلامت روزانه. + +### ۴. سبد خرید و پرداخت (Cart & Payment) +- **POST /api/cart/apply-coupon**: استعلام و اعمال کد تخفیف. +- **POST /api/orders**: ثبت نهایی سفارش و تولید کد رهگیری. +- **POST /api/payment/init**: اتصال به درگاه پرداخت بانکی. + +--- + +## راهنمای پیادهسازی: +تمامی این نقاط در کد با کامنت `// TODO: [BACKEND_API]` مشخص شدهاند. کافیست در هر بخش، منطق `set` یا `fetch` فعلی را با یک فراخوانی `axios` یا `fetch` جایگزین کنید. diff --git a/README.md b/README.md index 2241000..ff62415 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,49 @@ -
The fastest path from prompt to production with Gemini.
+- **Smart Advisor (مشاور هوشمند)**: سیستم تحلیل بالینی مبتنی بر وضعیت سلامت، نژاد و سن پت برای پیشنهاد دقیق مکمل. +- **Digital Health ID (شناسنامه سلامت)**: مدیریت کامل سوابق درمانی، یادآورها و موجودی انبار شخصی برای هر حیوان. +- **Kindness Footprint (ردپای مهربانی)**: سیستم خیریه یکپارچه برای حمایت از حیوانات بیسرپرست پناهگاهی با هر خرید. +- **PWA Support**: قابلیت نصب بر روی موبایل و پشتیبانی از حالت آفلاین برای مشاهده شناسنامهها. +- **B2B Portal**: پورتال اختصاصی برای داروخانهها و کلینیکهای دامپزشکی. - Start building +## 🛠 تکنولوژیها (Tech Stack) -دسترسی به تمامی محصولات بر اساس علائم بالینی و نیازهای پت شما.
+آشنایی با ترکیبات نایاب و استانداردهای دارویی محصولات آلمانی کانینا.
+{item.desc}
++ تیم متخصص دامپزشکی کانینا ایران آماده پاسخگویی به سوالات شماست. +
+با فیلترهای فعلی محصولی مطابق با نیاز شما پیدا نکردیم. لطفاً فیلترها را گستردهتر کنید یا دکمه ریست را بزنید.
+ ++ برای دسترسی به پرونده سلامت و تخفیفات اختصاصی وارد شوید +
+ورود سریع (جهت تست)
++ این بخش اختصاصی برای ثبت سفارشات حجیم و استعلام موجودی آنی طراحی شده است. قیمتهای نمایش داده شده، فی واحد کاتالوگ هستند. +
+| تصویر | +نام و کد کالا | +وضعیت موجودی | +تعداد سفارش | +
|---|---|---|---|
|
+ |
+
+ {product.name}
+ شناسه کالا: {product.artNo}
+ |
+
+
+ |
+ + handleQuantityChange(product.id, e.target.value)} + placeholder="0" + className="w-20 bg-medical-gray-50 border border-medical-gray-200 rounded-xl py-2 px-3 text-center font-mono font-bold focus:ring-2 focus:ring-canina-blue/20 outline-none" + /> + | +
+ {selectedPost.excerpt} +
++ آخرین یافتههای علمی محققین کانینا آلمان در مورد تغذیه و سلامت پتها. +
++ {BLOG_POSTS[0].excerpt} +
++ {post.excerpt} +
++ ماهانه یک ایمیل حاوی مهمترین نکات سلامت پتها و کدهای تخفیف اختصاصی دریافت کنید. +
++ تمامی مقالات این وبلاگ بر اساس کاتالوگهای رسمی و نتایج آزمایشگاهی کمپانی کانینا آلمان تدوین شده است. +
+ +سبد خرید شما خالی است
+ +{item.product.category}
++ مطمئنی میخوای این محصول رو حذف کنی؟ +
+برای جذب ویتامینهای Canhydrox، اسیدهای چرب سالمون ضروری هستند.
+۵٪ تخفیف روی تمام فاکتور + ارسال اولویتدار
+{toPersian(getTotal().toLocaleString())}
+تومان
+{pay.desc}
+سهم شما در حمایت از حیوانات بیپناه
+با انتخاب این گزینه، مابقی مبلغ تا ده هزار تومان بعدی یا ۱٪ از خرید شما (هر کدام بیشتر باشد) صرف تامین غذا و دارو برای حیوانات بی-سرپرست تحت حمایت کانینا میشود.
+«با خرید این محصول، شما هم در درمان یک حیوان پناهگاهی سهیم شدید.»
+{item.product.name}
+تعداد: {toPersian(item.quantity)} بسته
+{toPersian(getTotal().toLocaleString())}
+تومان
+{message}
+ ++ مشکلی در بارگذاری این بخش پیش آمده است. لطفاً برای ادامه دوباره تلاش کنید. +
+ + + ++ متأسفانه صفحهای که به دنبال آن هستید وجود ندارد یا جابجا شده است. +
+ + ++ ارتباط با دیتابیس کانینا با مشکل مواجه شده است. در حال بررسی موضوع هستیم. +
+ ++ {product.description} +
+ ++ محصولات دارویی کانینا با استفاده از دانش پیشرفته بیوتکنولوژی و مواد اولیه ارگانیک نایاب فرآوری شدهاند. +
+ ++ بیش از ۴۰ سال تجربه نوآورانه در تولید مکملهای درمانی با بالاترین استاندارد کیفی «گرید دارویی اختصاصی». راهکار هوشمند برای هر نیاز بالینی. +
+ ++ ما از مواد اولیهای استفاده میکنیم که در سطح دارویی فرآوری شدهاند. در اینجا با قدرت بیولوژیک این ترکیبات آشنا شوید. +
++ {ing.description} +
+ +این یعنی استانداردی فراتر از مکملهای معمولی، مشابه استانداردهای تولید دارو در اتحادیه اروپا.
++ تحلیل سلامت {petName || "همدم شما"} آماده است! برای مشاهده رژیم مکمل پیشنهادی و ذخیره دائمی شناسنامه، وارد شوید. +
+ ) : ( +برای دسترسی به پنل مدیریت سلامت، وارد شوید
+ )} ++ {view === "login" ? "هنوز حساب ندارید؟" : "قبلاً ثبتنام کردهاید؟"}{' '} + +
++ {isOnline + ? 'اتصال اینترنت مجدداً برقرار شد.' + : 'اتصال اینترنت شما قطع شده است. در حال تلاش برای اتصال مجدد...'} +
+| محصول | +تعداد | +قیمت واحد | +جمع کل | +
|---|
جمع کل فاکتور: ${toPersian(order.total.toLocaleString())} تومان
+ثبت شده در {toPersian(orderDate.toLocaleDateString("fa-IR"))}
++ تهران، خیابان ولیعصر، بالاتر از میدان ونک، بنبست آفتاب، پلاک ۱۲، واحد ۳ +
+شماره سفارش: {order.id}
+ + {/* Empathetic Message */} ++ {activePet ? ( + <> + انتخاب درستی برای {activePet.name} کردی. + {hasCanhydrox ? ( + ` مکمل Canhydrox با فرمول آلمانیاش دقیقاً همون چیزیه که استخوانهای ${activePet.name} برای بازیگوشی دوباره بهش نیاز دارن.` + ) : ( + ` محصولات انتخابی شما با بالاترین استانداردهای دارویی آلمان تولید شدهاند و به زودی به دست ${activePet.name} میرسند.` + )} + > + ) : ( + "سفارش شما با رعایت تمامی استانداردهای کیفی آلمان در حال دستهبندی است. از اعتماد شما به سلامت پتها سپاسگزاریم." + )} +
+وضعیت ارسال
+در حال پردازش در انبار
+تخمین تحویل
+۴۸ تا ۷۲ ساعت کاری
+کد رهگیری پستی
+{activeOrder.trackingNumber}
+تاریخ ثبت
+{new Date(activeOrder.date).toLocaleDateString('fa-IR')}
+{step.sub}
++ تهران، خیابان ولیعصر، بالاتر از میدان ونک، بنبست آفتاب، پلاک ۱۲، واحد ۳ +
+ +سفارشی یافت نشد. لطفاً شماره سفارش صحیح را وارد کنید.
+مدیریت شناسنامههای سلامت و سوابق درمانی
+{pet.breed}
+ ++ آیا از حذف شناسنامه {petToDelete.name} اطمینان دارید؟ این عمل غیرقابل بازگشت است و تمام سوابق سلامت او حذف خواهد شد. +
+مرحله {toPersian(step)} از {toPersian(3)}: بروزرسانی اطلاعات تخصصی
++ بر اساس پایش هوشمند، وضعیت {activePet.name} در سطح «ایدهآل» قرار دارد. +
+سفیر مهربانی: {activePet.name}
++ {activePet.name} با خریدهای مکمل خود، تا کنون به تامین هزینههای درمانی و تغذیه حیوانات پناهگاهی کمک کرده است. +
+هنوز محصولی برای پایش موجودی ثبت نشده است.
+با ثبت اولین سفارش، پایش هوشمند فعال میشود.
+باقیمانده: {toPersian(consumption.remaining)} واحد
+کاتالوگ ۲۰۲۴ آلمان
+{p.benefits}
+ +هنوز یادآوری ثبت نشده است
+{toPersian(reminder.time)} - {reminder.frequency}
+هنوز گزارشی ثبت نشده است
++ {log.note || "وضعیتی برای این روز ثبت نشده است."} +
+لیست محصولات خریداری شده ویژه این پرونده سلامت
+هنوز سفارشی برای {activePet.name} ثبت نکردهاید.
+ ++ این گزارش توسط سیستم هوش مصنوعی کانینا و با انطباق کامل بر پروتکلهای درمانی Canina Pharma GmbH آلمان تولید شده است. تمامی مکملهای پیشنهادی دارای استاندارد دارویی (Pharmaceutical Grade) میباشند. +
++ {pets.length > 0 ? ( + product.optimisticTemplate?.replace("[PetName]", activePet?.name || "").replace("[OnSet]", product.onSetOfAction || "به زودی") + ) : ( + product.scientificTagline + )} +
+ {fullProduct.shortDescription && ( ++ {fullProduct.shortDescription} +
+ )} +{benefit.description}
++ {product.feedingAdvice} +
+{product.specialist.title}
++ "{product.specialist.message}" +
++ گزارشهای علمی، ویدیوهای آموزشی و تجربیات واقعی دیگر صاحبان پت در لندینگپیج اختصاصی این محصول. +
+{relProduct.description}
++ بر اساس وزن {toPersian(weight)} کیلوگرمی {activePet ? `برای ${activePet.name}` : 'سگ شما'}، این بسته {toPersian(product.packageSize)} تایی دقیقاً {toPersian(calculation.duration)} روز دیگر تمام میشود. +
++ {results.length} محصول با معیارهای شما مطابقت دارد. +
+{product.benefits}
++ متاسفیم، هیچ محصولی با عبارت مورد نظر شما مطابقت نداشت. شاید محصولات پرفروش ما برای شما مفید باشند؟ +
+فقط چند قدم تا صدور شناسنامه هوشمند و دریافت پیشنهادات تخصصی
+همدم شما رو با چه اسمی صدا میزنید؟
+اطلاعات فیزیکی دقیق به دوزبندی صحیح مکملها کمک میکند
+در صورت وجود هر یک از موارد زیر، آن را تیک بزنید
++ {termData.definition} +
+ {termData.wikiId && ( + + )} + {/* Arrow */} + +{profile.email}
+مجموع کمکهای اهدایی
++ همکاری شما باعث تامین هزینه {toPersian(Math.floor((profile.charityDonationTotal || 0) / 15000).toString())} وعده غذا برای حیوانات بیپناه شده است. +
+هنوز سفارشی ثبت نکردهاید.
+ +هنوز آدرسی ثبت نکردهاید.
+تحویل گیرنده: {addr.receptorName}
+{toPersian(addr.province)}، {toPersian(addr.city)}، {toPersian(addr.detail)}
+تراکنشی یافت نشد.
++ متخصصین آلمانی کانینا مستقیماً با شما صحبت میکنند. نحوه مصرف، مزایای رقابتی و دانش تخصصی پشت هر محصول. +
++ "{video.description}" +
+{selectedVideo.doctor}
+{selectedVideo.doctor}
+