feat(products): port missing variant fields from henza and redesign variant modal

This commit is contained in:
mahmood
2026-10-25 16:06:17 +03:30
parent 143d9aefbb
commit 55d27151c9
236 changed files with 1009 additions and 352 deletions
+6 -1
View File
@@ -56,12 +56,17 @@
|---|---|---|---|---|
| عنوان | `title` | `ProductVariant.title` | string، الزامی | تنها فیلد با اعتبارسنجی (`عنوان تنوع الزامی است`) |
| وزن | `grams` | `ProductVariant.rashWeightGrams` | Decimal(14,4) | وزن پایه/خام پیش از احتساب اجرت («rash weight») |
| رنگ | `color` | `ProductVariant.color` | int، اختیاری | کد رنگ: ۰ سفید، ۱ زرد، ۲ شکلاتی، ۳ رزگلد (برگرفته از `admin/products/colors`) |
| اجرت ریالی | `rial_pay` | `ProductVariant.rialWage` | Decimal(18,0) | مبلغ اجرت ریالی ثابت |
| اجرت درصدی | `percentage_pay` | `ProductVariant.defaultWagePercent` | Decimal(6,3) | درصد اجرت پیش‌فرض روی وزن پایه |
| تعداد | `qty` | `ProductVariant.qty` | int، پیش‌فرض `0` | موجودی انبار |
| فعال | `is_active` | `ProductVariant.isActive` | boolean، پیش‌فرض `true` | |
| پیش سفارش | `is_pre_order` | `ProductVariant.isPreOrder` | boolean، پیش‌فرض `false` | اگر `true` باشد، حتی با موجودی صفر قابل سفارش است |
| توضیح مختصر | `details` | `ProductVariant.details` | text | توضیح کوتاه برای تنوع |
| توضیحات کامل | `description` | `ProductVariant.description` | text | توضیحات کامل تنوع |
| تصویر اختصاصی | `image_id` | `ProductVariant.imageId` | FK به `ProductImage` | انتخاب عکس اختصاصی تنوع از بین تصاویر گالری محصول |
فیلدهای دیگر مدل `ProductVariant` که در فرم نیستند: `sku` (یکتا)، `id`. فیلد رنگ و اجرت ریالی نسخه قدیمی حذف شده‌اند (بدون ستون معادل).
فیلدهای دیگر مدل `ProductVariant` که در فرم نیستند: `sku` (یکتا)، `id`. تمام فیلدهای مرجع henza_admin شامل رنگ، اجرت ریالی و توضیحات تنوع با موفقیت پورت شدند.
> قاعده‌ی سبد خرید: اگر `qty = 0` و `isPreOrder = false` باشد، واریانت قابل افزودن به سبد نیست (منطق در `apps/admin-panel/src/stores/cart.ts`).