docs: add comprehensive API field mapping documentation
- Document exact mapping between form fields and API structure - Include complete examples of product and variant data - Detail product types and their use cases - List UI-specific fields vs API fields - Provide migration notes for removed fields - Include file change summary and implementation details
This commit is contained in:
parent
8c896c1855
commit
09c008396e
|
|
@ -0,0 +1,154 @@
|
|||
# 📋 مقایسه فیلدها - سیستم محصولات
|
||||
|
||||
## 🔵 فیلدهای محصول (Product Fields)
|
||||
|
||||
| فرم ما | API Field | نوع | توضیح |
|
||||
| ---------------------- | ---------------------- | ---------- | ------------------------ |
|
||||
| ✅ `name` | ✅ `name` | `string` | نام محصول |
|
||||
| ✅ `description` | ✅ `description` | `string` | توضیحات محصول |
|
||||
| ✅ `design_style` | ✅ `design_style` | `string` | استایل طراحی |
|
||||
| ✅ `enabled` | ✅ `enabled` | `boolean` | فعال/غیرفعال |
|
||||
| ✅ `category_ids` | ✅ `category_ids` | `number[]` | آرایه شناسه دستهبندیها |
|
||||
| ✅ `product_option_id` | ✅ `product_option_id` | `number` | شناسه گزینه محصول |
|
||||
| ✅ `total_sold` | ✅ `total_sold` | `number` | تعداد فروخته شده |
|
||||
| ✅ `type` | ✅ `type` | `number` | نوع محصول (0,1,2,3) |
|
||||
| ✅ `attributes` | ✅ `attributes` | `object` | ویژگیهای سفارشی |
|
||||
| ✅ `variants` | ✅ `variants` | `array` | آرایه variants |
|
||||
|
||||
## 🔧 فیلدهای Variant
|
||||
|
||||
| فرم ما | API Field | نوع | توضیح |
|
||||
| ---------------------- | ---------------------- | --------- | -------------------------- |
|
||||
| ✅ `enabled` | ✅ `enabled` | `boolean` | فعال/غیرفعال variant |
|
||||
| ✅ `fee_percentage` | ✅ `fee_percentage` | `number` | درصد کارمزد |
|
||||
| ✅ `profit_percentage` | ✅ `profit_percentage` | `number` | درصد سود |
|
||||
| ✅ `stock_limit` | ✅ `stock_limit` | `number` | حد کمینه موجودی |
|
||||
| ✅ `stock_managed` | ✅ `stock_managed` | `boolean` | مدیریت موجودی فعال/غیرفعال |
|
||||
| ✅ `stock_number` | ✅ `stock_number` | `number` | تعداد موجودی |
|
||||
| ✅ `weight` | ✅ `weight` | `number` | وزن (گرم) |
|
||||
| ✅ `attributes` | ✅ `attributes` | `object` | ویژگیهای variant |
|
||||
| ✅ `meta` | ✅ `meta` | `object` | Meta data |
|
||||
|
||||
## 📊 فیلدهای اضافی در فرم
|
||||
|
||||
| فرم ما | API | دلیل |
|
||||
| --------------- | ------- | ------------------------------ |
|
||||
| 🆕 `images` | ❌ نیست | برای آپلود و مدیریت تصاویر |
|
||||
| 🆕 `id` | ❌ نیست | برای ویرایش (از response میاد) |
|
||||
| 🆕 `created_at` | ❌ نیست | از response میاد |
|
||||
| 🆕 `updated_at` | ❌ نیست | از response میاد |
|
||||
|
||||
## 🎯 مثال API Request کامل
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "تیشرت مردانه",
|
||||
"description": "تیشرت با کیفیت بالا",
|
||||
"design_style": "مدرن",
|
||||
"enabled": true,
|
||||
"category_ids": [1, 3],
|
||||
"product_option_id": 2,
|
||||
"total_sold": 25,
|
||||
"type": 1,
|
||||
"attributes": {
|
||||
"material": "پنبه",
|
||||
"season": "تابستان"
|
||||
},
|
||||
"variants": [
|
||||
{
|
||||
"enabled": true,
|
||||
"fee_percentage": 5.5,
|
||||
"profit_percentage": 25,
|
||||
"stock_managed": true,
|
||||
"stock_number": 10,
|
||||
"stock_limit": 2,
|
||||
"weight": 200,
|
||||
"attributes": {
|
||||
"color": "قرمز",
|
||||
"size": "بزرگ"
|
||||
},
|
||||
"meta": {
|
||||
"supplier": "تامینکننده A",
|
||||
"priority": "high"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 🚀 نوع محصولات (Product Types)
|
||||
|
||||
| مقدار | نام | توضیح |
|
||||
| ----- | ----------- | ----------------------- |
|
||||
| `0` | محصول ساده | محصول بدون variant |
|
||||
| `1` | محصول متغیر | محصول با variants مختلف |
|
||||
| `2` | محصول گروهی | مجموعه محصولات |
|
||||
| `3` | محصول خارجی | لینک به سایت خارجی |
|
||||
|
||||
## 🎨 فیلدهای UI (غیر API)
|
||||
|
||||
### فیلدهای مدیریت تصاویر:
|
||||
|
||||
- **`images`** - آرایه تصاویر محصول
|
||||
- **`images.id`** - شناسه فایل آپلود شده
|
||||
- **`images.url`** - آدرس تصویر
|
||||
- **`images.alt`** - متن جایگزین
|
||||
- **`images.order`** - ترتیب نمایش
|
||||
|
||||
### فیلدهای مدیریت داخلی:
|
||||
|
||||
- **`id`** - شناسه محصول (برای ویرایش)
|
||||
- **`created_at`** - تاریخ ایجاد
|
||||
- **`updated_at`** - تاریخ آخرین ویرایش
|
||||
|
||||
## ✨ خلاصه مطابقت
|
||||
|
||||
### ✅ کاملاً مطابق:
|
||||
|
||||
- **100% فیلدهای API پیادهسازی شده**
|
||||
- **ساختار دقیقاً مشابه**
|
||||
- **نوع دادهها صحیح**
|
||||
- **Validation مناسب**
|
||||
|
||||
### 🎯 ویژگیهای اضافی:
|
||||
|
||||
- **مدیریت تصاویر** با آپلود و پیشنمایش
|
||||
- **UI/UX بهتر** با validation و error handling
|
||||
- **Preview زنده** تغییرات
|
||||
- **Responsive design** برای موبایل
|
||||
|
||||
## 📝 نتیجهگیری
|
||||
|
||||
**✅ تمام فیلدهای API شما دقیقاً پیادهسازی شده است**
|
||||
|
||||
**🎨 قابلیتهای اضافی UI/UX برای تجربه بهتر کاربر اضافه شده**
|
||||
|
||||
**🚀 سیستم آماده برای استفاده در production**
|
||||
|
||||
---
|
||||
|
||||
## 📋 فیلدهای حذف شده (که در API نبودند)
|
||||
|
||||
### ❌ فیلدهایی که حذف کردیم:
|
||||
|
||||
- **`price`** - نه در محصول و نه در variant
|
||||
- **`sku`** - نه در محصول و نه در variant
|
||||
- **`status`** - در API نبود
|
||||
- **`name`** برای variant - در API نبود
|
||||
|
||||
### 🔄 تغییرات انجام شده:
|
||||
|
||||
1. **Models** بهروزرسانی شد طبق API دقیق
|
||||
2. **Product Form** فیلدهای اضافی حذف شد
|
||||
3. **Variant Manager** سادهسازی شد طبق API
|
||||
4. **Validation** تنظیم شد برای فیلدهای جدید
|
||||
|
||||
## 🛠️ فایلهای تغییر یافته:
|
||||
|
||||
- `src/pages/products/core/_models.ts`
|
||||
- `src/pages/products/product-form/ProductFormPage.tsx`
|
||||
- `src/components/ui/VariantManager.tsx`
|
||||
|
||||
## 🎉 نتیجه نهایی:
|
||||
|
||||
**سیستم کاملاً آماده و مطابق با API شماست! 🚀**
|
||||
Loading…
Reference in New Issue