# مستند کامل سیستم تحلیل عملکرد تیم خرید

## 📋 فهرست مطالب

1. [معرفی](#معرفی)
2. [نحوه استفاده](#نحوه-استفاده)
3. [ساختار داده‌ها](#ساختار-داده‌ها)
4. [پرامپت ارسالی به AI](#پرامپت-ارسالی-به-ai)
5. [ساختار پاسخ API](#ساختار-پاسخ-api)
6. [پردازش و نمایش پاسخ](#پردازش-و-نمایش-پاسخ)
7. [جزئیات فنی](#جزئیات-فنی)
8. [مدیریت خطاها](#مدیریت-خطاها)
9. [مثال‌های عملی](#مثال‌های-عملی)

---

## معرفی

سیستم تحلیل عملکرد تیم خرید یک ابزار پیشرفته است که با استفاده از هوش مصنوعی (ChatGPT API) به تحلیل جامع عملکرد تیم خرید می‌پردازد. این سیستم داده‌های مربوط به درخواست‌های خرید و استعلام‌های قیمت را جمع‌آوری کرده و با ارسال یک پرامپت جامع به AI، گزارش تحلیلی دقیق و کاربردی تولید می‌کند.

### ویژگی‌های کلیدی

- ✅ تحلیل خودکار داده‌های خرید
- ✅ شناسایی الگوهای استفاده از تامین‌کنندگان
- ✅ بررسی توزیع کار بین اعضای تیم
- ✅ تحلیل وضعیت درخواست‌های خرید
- ✅ پیشنهادات عملی برای بهبود عملکرد
- ✅ گزارش‌های ساختاریافته و قابل اجرا

### پیش‌نیازها

- داشتن دسترسی مدیر (Admin)
- تنظیم کلید API در بخش "تنظیمات API"
- وجود داده در جداول `purchase_requests` و `price_inquiry_sessions`

---

## نحوه استفاده

### گام 1: دسترسی به صفحه

1. وارد پنل مدیریت شوید
2. از منوی سمت راست، روی "تنظیمات" کلیک کنید
3. از زیر منوی تنظیمات، "عملکرد تیم" را انتخاب کنید
4. یا مستقیماً به آدرس `/admin/team-performance` بروید

### گام 2: بررسی تنظیمات API

قبل از استفاده، مطمئن شوید که:
- کلید API در بخش "تنظیمات API" تنظیم شده است
- کلید API فعال (is_active = true) است
- نوع کلید API برابر با `chatgpt` است

### گام 3: شروع تحلیل

1. روی دکمه "شروع تحلیل" کلیک کنید
2. سیستم شروع به جمع‌آوری داده‌ها می‌کند
3. یک اسپینر بارگذاری نمایش داده می‌شود
4. پرامپت به API ارسال می‌شود
5. گزارش AI تولید و نمایش داده می‌شود

### گام 4: بررسی گزارش

گزارش شامل:
- **خلاصه داده‌ها**: کارت‌های آماری در بالای صفحه
- **گزارش AI**: تحلیل جامع در بخش پایین

---

## ساختار داده‌ها

### منابع داده

سیستم از دو منبع اصلی داده جمع‌آوری می‌کند:

#### 1. درخواست‌های خرید (Purchase Requests)

**جداول مرتبط:**
- `purchase_requests` - درخواست‌های خرید
- `purchase_request_items` - آیتم‌های هر درخواست
- `purchase_request_item_offers` - پیشنهادات تامین‌کنندگان

**داده‌های جمع‌آوری شده:**

```php
[
    'purchase_requests' => [
        'total' => int,                    // تعداد کل درخواست‌ها
        'by_status' => [                   // توزیع بر اساس وضعیت
            'draft' => int,
            'submitted' => int,
            'approved' => int,
            'rejected' => int,
            'ordered' => int,
            'received' => int,
            'archived' => int,
        ],
        'by_type' => [                     // توزیع بر اساس نوع
            'official' => int,
            'unofficial' => int,
            'urgent' => int,
            'normal' => int,
            'planned' => int,
        ],
        'recent_30_days' => int,           // درخواست‌های 30 روز اخیر
    ],
]
```

#### 2. استعلام‌های قیمت (Price Inquiry Sessions)

**جداول مرتبط:**
- `price_inquiry_sessions` - جلسات استعلام قیمت

**داده‌های جمع‌آوری شده:**

```php
[
    'price_inquiries' => [
        'total' => int,                    // تعداد کل استعلام‌ها
        'recent_30_days' => int,           // استعلام‌های 30 روز اخیر
        'by_product' => int,               // تعداد محصولات مختلف
    ],
]
```

### آمار تامین‌کنندگان

```php
[
    'suppliers' => [
        'usage' => [                       // تمام تامین‌کنندگان
            [
                'name' => string,
                'total_offers' => int,
                'selected_offers' => int,
                'total_amount' => float,
            ],
            // ...
        ],
        'top_suppliers' => [               // 10 تامین‌کننده برتر
            // بر اساس تعداد پیشنهادات انتخاب شده
        ],
        'price_inquiry_usage' => [         // استفاده در استعلام‌ها
            [
                'name' => string,
                'inquiry_count' => int,
            ],
        ],
    ],
]
```

### آمار اعضای تیم

```php
[
    'team_members' => [
        [
            'name' => string,
            'total_requests' => int,
            'by_status' => [
                'draft' => int,
                'submitted' => int,
                // ...
            ],
        ],
        // ...
    ],
]
```

### محدوده زمانی

```php
[
    'time_range' => [
        'start' => 'Y-m-d',                // 30 روز پیش
        'end' => 'Y-m-d',                  // امروز
    ],
]
```

---

## پرامپت ارسالی به AI

### ساختار کلی پرامپت

پرامپت به دو بخش تقسیم می‌شود:

1. **System Message**: نقش و وظیفه AI
2. **User Message**: داده‌ها و دستورالعمل‌های تحلیل

### System Message

```
شما یک تحلیل‌گر حرفه‌ای عملکرد تیم خرید هستید. گزارش‌های شما باید دقیق، کاربردی و قابل اجرا باشند. از داده‌های ارائه شده برای شناسایی الگوها، مشکلات و فرصت‌های بهبود استفاده کنید.
```

### User Message (پرامپت کامل)

```
به عنوان یک تحلیل‌گر حرفه‌ای عملکرد تیم خرید، داده‌های زیر را تحلیل کن و یک گزارش جامع و کاربردی ارائه بده:

=== آمار کلی درخواست‌های خرید ===
تعداد کل درخواست‌ها: {total}
درخواست‌های 30 روز اخیر: {recent_30_days}
توزیع بر اساس وضعیت: {by_status_json}
توزیع بر اساس نوع: {by_type_json}

=== آمار استعلام قیمت ===
تعداد کل استعلام‌ها: {total}
استعلام‌های 30 روز اخیر: {recent_30_days}
تعداد محصولات مختلف: {by_product}

=== آمار تامین‌کنندگان ===
تعداد کل تامین‌کنندگان استفاده شده: {count}
10 تامین‌کننده برتر (بر اساس تعداد پیشنهادات انتخاب شده):
1. {supplier_name} - پیشنهادات انتخاب شده: {selected_offers} - کل پیشنهادات: {total_offers}
2. ...
...

=== آمار اعضای تیم ===
{member_name}: {total_requests} درخواست
...

=== دستورالعمل تحلیل ===
لطفاً موارد زیر را در گزارش خود بررسی و تحلیل کن:
1. الگوهای استفاده از تامین‌کنندگان (آیا تیم فقط با چند تامین‌کننده کار می‌کند؟)
2. توزیع کار بین اعضای تیم
3. وضعیت درخواست‌های خرید (نرخ موفقیت، رد شده، در انتظار و ...)
4. روند استعلام قیمت و استفاده از آن
5. نقاط قوت و ضعف عملکرد تیم
6. پیشنهادات عملی برای بهبود عملکرد
7. شناسایی ریسک‌ها و فرصت‌ها

گزارش را به صورت ساختاریافته و با استفاده از عناوین و بخش‌بندی مناسب ارائه بده. از مثال‌های مشخص از داده‌ها استفاده کن و پیشنهادات عملی و قابل اجرا ارائه بده.
گزارش را به زبان فارسی و با لحن حرفه‌ای و سازنده بنویس.
```

### مثال پرامپت واقعی

```
به عنوان یک تحلیل‌گر حرفه‌ای عملکرد تیم خرید، داده‌های زیر را تحلیل کن و یک گزارش جامع و کاربردی ارائه بده:

=== آمار کلی درخواست‌های خرید ===
تعداد کل درخواست‌ها: 150
درخواست‌های 30 روز اخیر: 45
توزیع بر اساس وضعیت: {"draft":10,"submitted":25,"approved":80,"rejected":5,"ordered":20,"received":10}
توزیع بر اساس نوع: {"official":100,"unofficial":30,"urgent":15,"normal":5}

=== آمار استعلام قیمت ===
تعداد کل استعلام‌ها: 200
استعلام‌های 30 روز اخیر: 60
تعداد محصولات مختلف: 50

=== آمار تامین‌کنندگان ===
تعداد کل تامین‌کنندگان استفاده شده: 25
10 تامین‌کننده برتر (بر اساس تعداد پیشنهادات انتخاب شده):
1. شرکت شیمیایی تهران - پیشنهادات انتخاب شده: 45 - کل پیشنهادات: 120
2. مواد شیمیایی پارس - پیشنهادات انتخاب شده: 30 - کل پیشنهادات: 80
3. ...

=== آمار اعضای تیم ===
علی احمدی: 50 درخواست
محمد رضایی: 60 درخواست
فاطمه کریمی: 40 درخواست

=== دستورالعمل تحلیل ===
...
```

### پارامترهای API Request

```json
{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "system",
      "content": "شما یک تحلیل‌گر حرفه‌ای عملکرد تیم خرید هستید..."
    },
    {
      "role": "user",
      "content": "پرامپت کامل با داده‌ها..."
    }
  ],
  "temperature": 0.7,
  "max_tokens": 2000
}
```

**توضیحات پارامترها:**

- `model`: مدل AI استفاده شده (gpt-4o)
- `temperature`: میزان خلاقیت پاسخ (0.7 = متعادل)
- `max_tokens`: حداکثر طول پاسخ (2000 کاراکتر)
- `timeout`: زمان انتظار برای پاسخ (60 ثانیه)

---

## ساختار پاسخ API

### پاسخ موفق

```json
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "گزارش تحلیل به زبان فارسی..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 500,
    "completion_tokens": 1500,
    "total_tokens": 2000
  }
}
```

### پاسخ پردازش شده در Controller

```json
{
  "success": true,
  "report": "گزارش کامل AI به صورت متن",
  "data_summary": {
    "total_purchase_requests": 150,
    "recent_purchase_requests": 45,
    "total_price_inquiries": 200,
    "recent_price_inquiries": 60,
    "total_suppliers": 25,
    "top_suppliers_count": 10,
    "team_members_count": 3
  }
}
```

### پاسخ خطا

```json
{
  "success": false,
  "error": "پیام خطا به زبان فارسی"
}
```

**انواع خطاها:**

1. **کلید API تنظیم نشده** (400):
   ```json
   {
     "success": false,
     "error": "لطفاً ابتدا کلید API را در تنظیمات API تنظیم کنید"
   }
   ```

2. **کلید API نامعتبر** (401/403):
   ```json
   {
     "success": false,
     "error": "خطا در ارتباط با API: کلید API نامعتبر است"
   }
   ```

3. **پاسخ نامعتبر** (500):
   ```json
   {
     "success": false,
     "error": "پاسخ نامعتبر از API دریافت شد"
   }
   ```

4. **خطای سرور** (500):
   ```json
   {
     "success": false,
     "error": "خطای غیرمنتظره: {error_message}"
   }
   ```

---

## پردازش و نمایش پاسخ

### فرآیند Frontend

#### 1. ارسال درخواست

```javascript
const response = await fetch('/admin/team-performance/analyze', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'X-CSRF-TOKEN': csrf_token,
    },
});
```

#### 2. پردازش پاسخ

```javascript
const data = await response.json();

if (data.success) {
    // نمایش خلاصه داده‌ها
    displayDataSummary(data.data_summary);
    
    // تبدیل و نمایش گزارش AI
    displayAIReport(data.report);
} else {
    // نمایش خطا
    displayError(data.error);
}
```

#### 3. تبدیل Markdown به HTML

گزارش AI ممکن است شامل فرمت‌های Markdown باشد که به HTML تبدیل می‌شوند:

```javascript
let reportHtml = data.report
    .replace(/\n\n/g, '</p><p class="mb-4">')      // پاراگراف‌ها
    .replace(/\n/g, '<br>')                        // خطوط جدید
    .replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>')  // Bold
    .replace(/\*(.*?)\*/g, '<em>$1</em>')         // Italic
    .replace(/^### (.*$)/gm, '<h3>$1</h3>')        // H3
    .replace(/^## (.*$)/gm, '<h2>$1</h2>')        // H2
    .replace(/^# (.*$)/gm, '<h1>$1</h1>')          // H1
    .replace(/^\d+\.\s(.*$)/gm, '<li>$1</li>')    // لیست شماره‌دار
    .replace(/^-\s(.*$)/gm, '<li>$1</li>');        // لیست نقطه‌ای
```

#### 4. نمایش خلاصه داده‌ها

```html
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
    <div class="bg-slate-800/50 rounded-lg p-4">
        <div class="text-slate-400 text-sm mb-1">کل درخواست‌های خرید</div>
        <div class="text-2xl font-bold text-slate-100">150</div>
    </div>
    <!-- ... -->
</div>
```

#### 5. نمایش گزارش AI

```html
<div class="bg-slate-900/50 rounded-xl border border-slate-700 p-6">
    <h3 class="text-xl font-bold text-slate-100">گزارش تحلیل هوش مصنوعی</h3>
    <div class="prose prose-invert max-w-none text-slate-300">
        <!-- گزارش HTML -->
    </div>
</div>
```

### حالت‌های UI

#### 1. حالت عادی
- دکمه "شروع تحلیل" فعال است
- هیچ محتوایی نمایش داده نمی‌شود

#### 2. حالت بارگذاری
```html
<div class="flex flex-col items-center justify-center py-12">
    <div class="w-16 h-16 border-4 border-blue-500 border-t-transparent rounded-full animate-spin"></div>
    <p class="text-slate-300 mt-4">در حال تحلیل داده‌ها و تولید گزارش...</p>
</div>
```

#### 3. حالت خطا
```html
<div class="bg-red-900/20 border border-red-700/50 rounded-lg p-4">
    <h3 class="text-red-400 font-semibold">خطا در تحلیل</h3>
    <p class="text-red-300 text-sm">{error_message}</p>
</div>
```

#### 4. حالت موفق
- نمایش خلاصه داده‌ها
- نمایش گزارش AI

---

## جزئیات فنی

### Controller: `TeamPerformanceController`

**مسیر:** `app/Http/Controllers/Admin/TeamPerformanceController.php`

#### متدها

##### 1. `index()`
- **وظیفه**: نمایش صفحه تحلیل عملکرد
- **Route**: `GET /admin/team-performance`
- **View**: `admin.team-performance.index`

##### 2. `analyze(Request $request)`
- **وظیفه**: تحلیل داده‌ها و تولید گزارش
- **Route**: `POST /admin/team-performance/analyze`
- **فرآیند**:
  1. بررسی وجود کلید API
  2. جمع‌آوری داده‌ها (`collectTeamPerformanceData()`)
  3. ساخت پرامپت (`buildAnalysisPrompt()`)
  4. ارسال به API
  5. پردازش پاسخ
  6. بازگشت JSON

##### 3. `collectTeamPerformanceData()` (Private)
- **وظیفه**: جمع‌آوری داده‌ها از دیتابیس
- **منابع داده**:
  - `PurchaseRequest::with(['items.offers.supplier', 'requester'])`
  - `PriceInquirySession::with(['product', 'creator'])`
- **خروجی**: آرایه ساختاریافته از داده‌ها

##### 4. `buildAnalysisPrompt($data)` (Private)
- **وظیفه**: ساخت پرامپت جامع برای AI
- **ورودی**: آرایه داده‌های جمع‌آوری شده
- **خروجی**: رشته پرامپت کامل

##### 5. `getDataSummary($data)` (Private)
- **وظیفه**: استخراج خلاصه داده‌ها برای نمایش
- **ورودی**: آرایه داده‌های کامل
- **خروجی**: آرایه خلاصه شده

### View: `team-performance/index.blade.php`

**مسیر:** `resources/views/admin/team-performance/index.blade.php`

**ساختار:**

```blade
@extends('layouts.panel')

@section('content')
    <!-- Header -->
    <!-- Info Card -->
    <!-- Analysis Section -->
        <!-- Loading State -->
        <!-- Error State -->
        <!-- Report Section -->
            <!-- Data Summary -->
            <!-- AI Report -->
@endsection

@push('scripts')
    <script>
        async function analyzePerformance() { ... }
    </script>
@endpush
```

### Routes

**مسیر:** `routes/web.php`

```php
// Team Performance
Route::get('/admin/team-performance', [TeamPerformanceController::class, 'index'])
    ->name('admin.team-performance.index');
Route::post('/admin/team-performance/analyze', [TeamPerformanceController::class, 'analyze'])
    ->name('admin.team-performance.analyze');
```

### Models استفاده شده

1. **PurchaseRequest**
   - Relations: `items`, `requester`
   - Fields: `status`, `purchase_type`, `requested_by`, `created_at`

2. **PurchaseRequestItem**
   - Relations: `offers`, `purchaseRequest`
   - Fields: `purchase_request_id`, `product_id`

3. **PurchaseRequestItemOffer**
   - Relations: `supplier`
   - Fields: `supplier_id`, `is_selected`, `price`

4. **PriceInquirySession**
   - Relations: `product`, `creator`
   - Fields: `offers` (JSON), `created_at`

5. **ApiKey**
   - Fields: `api_key`, `base_url`, `is_active`, `type`, `created_by`

---

## مدیریت خطاها

### خطاهای احتمالی

#### 1. کلید API تنظیم نشده

**شرط:**
```php
if (!$apiKey) {
    return response()->json([
        'success' => false,
        'error' => 'لطفاً ابتدا کلید API را در تنظیمات API تنظیم کنید'
    ], 400);
}
```

**راه حل:**
- کاربر باید به `/admin/api-settings` برود
- یک کلید API جدید ایجاد کند
- کلید را فعال کند

#### 2. کلید API نامعتبر

**شرط:**
```php
catch (\GuzzleHttp\Exception\ClientException $e) {
    $statusCode = $e->getResponse()->getStatusCode();
    if ($statusCode === 401 || $statusCode === 403) {
        // کلید API نامعتبر
    }
}
```

**راه حل:**
- بررسی صحت کلید API
- بررسی فعال بودن کلید
- بررسی محدودیت‌های API

#### 3. پاسخ نامعتبر از API

**شرط:**
```php
if (!isset($responseData['choices'][0]['message']['content'])) {
    return response()->json([
        'success' => false,
        'error' => 'پاسخ نامعتبر از API دریافت شد',
    ], 500);
}
```

**راه حل:**
- بررسی ساختار پاسخ API
- بررسی محدودیت‌های token
- بررسی وضعیت API

#### 4. خطای اتصال

**شرط:**
```php
catch (\Exception $e) {
    return response()->json([
        'success' => false,
        'error' => 'خطای غیرمنتظره: ' . $e->getMessage(),
    ], 500);
}
```

**راه حل:**
- بررسی اتصال به اینترنت
- بررسی دسترسی به API endpoint
- بررسی لاگ‌های سرور

### مدیریت خطا در Frontend

```javascript
try {
    const response = await fetch(...);
    const data = await response.json();
    
    if (data.success) {
        // نمایش موفقیت
    } else {
        // نمایش خطا
        displayError(data.error);
    }
} catch (error) {
    // خطای شبکه یا پردازش
    displayError('خطا در ارتباط با سرور: ' + error.message);
}
```

---

## مثال‌های عملی

### مثال 1: تحلیل الگوی استفاده از تامین‌کنندگان

**داده ورودی:**
```php
[
    'suppliers' => [
        'top_suppliers' => [
            ['name' => 'شرکت الف', 'selected_offers' => 50, 'total_offers' => 60],
            ['name' => 'شرکت ب', 'selected_offers' => 30, 'total_offers' => 40],
            ['name' => 'شرکت ج', 'selected_offers' => 10, 'total_offers' => 15],
            // ... 7 تامین‌کننده دیگر
        ],
    ],
]
```

**گزارش AI (مثال):**
```
## تحلیل الگوی استفاده از تامین‌کنندگان

بر اساس داده‌های جمع‌آوری شده، تیم خرید شما عمدتاً با 3 تامین‌کننده اصلی کار می‌کند:

1. **شرکت الف**: 50 پیشنهاد انتخاب شده از 60 پیشنهاد (83% نرخ موفقیت)
2. **شرکت ب**: 30 پیشنهاد انتخاب شده از 40 پیشنهاد (75% نرخ موفقیت)
3. **شرکت ج**: 10 پیشنهاد انتخاب شده از 15 پیشنهاد (67% نرخ موفقیت)

### نکات مهم:
- تمرکز بیش از حد روی چند تامین‌کننده می‌تواند ریسک وابستگی ایجاد کند
- پیشنهاد می‌شود تنوع تامین‌کنندگان افزایش یابد
- بررسی کیفیت و قیمت سایر تامین‌کنندگان توصیه می‌شود
```

### مثال 2: تحلیل توزیع کار بین اعضای تیم

**داده ورودی:**
```php
[
    'team_members' => [
        ['name' => 'علی احمدی', 'total_requests' => 50],
        ['name' => 'محمد رضایی', 'total_requests' => 60],
        ['name' => 'فاطمه کریمی', 'total_requests' => 40],
    ],
]
```

**گزارش AI (مثال):**
```
## تحلیل توزیع کار بین اعضای تیم

توزیع درخواست‌های خرید بین اعضای تیم به شرح زیر است:

- **محمد رضایی**: 60 درخواست (40%)
- **علی احمدی**: 50 درخواست (33%)
- **فاطمه کریمی**: 40 درخواست (27%)

### تحلیل:
توزیع کار نسبتاً متعادل است، اما تفاوت 20 درخواستی بین بالاترین و پایین‌ترین عضو تیم وجود دارد. پیشنهاد می‌شود:
- بررسی علت تفاوت در حجم کار
- توزیع عادلانه‌تر درخواست‌ها
- آموزش و توانمندسازی تمام اعضا
```

### مثال 3: تحلیل وضعیت درخواست‌ها

**داده ورودی:**
```php
[
    'purchase_requests' => [
        'by_status' => [
            'draft' => 10,
            'submitted' => 25,
            'approved' => 80,
            'rejected' => 5,
            'ordered' => 20,
            'received' => 10,
        ],
    ],
]
```

**گزارش AI (مثال):**
```
## تحلیل وضعیت درخواست‌های خرید

وضعیت درخواست‌های خرید به شرح زیر است:

- **تأیید شده**: 80 درخواست (53%)
- **ارسال شده**: 25 درخواست (17%)
- **سفارش داده شده**: 20 درخواست (13%)
- **دریافت شده**: 10 درخواست (7%)
- **پیش‌نویس**: 10 درخواست (7%)
- **رد شده**: 5 درخواست (3%)

### نکات:
- نرخ تأیید بالا (53%) نشان‌دهنده کیفیت خوب درخواست‌هاست
- 25 درخواست در انتظار بررسی هستند که نیاز به پیگیری دارد
- نرخ رد پایین (3%) نشان‌دهنده دقت در ارسال درخواست‌هاست
```

---

## نکات مهم

### 1. بهینه‌سازی عملکرد

- استفاده از Eager Loading برای جلوگیری از N+1 Query
- Cache کردن نتایج برای کاهش بار API
- محدود کردن تعداد درخواست‌ها در بازه زمانی مشخص

### 2. امنیت

- بررسی دسترسی کاربر قبل از تحلیل
- رمزگذاری کلید API در دیتابیس
- اعتبارسنجی CSRF Token در درخواست‌ها

### 3. مقیاس‌پذیری

- برای داده‌های بزرگ، استفاده از Pagination
- پردازش غیرهمزمان (Queue) برای تحلیل‌های طولانی
- ذخیره‌سازی گزارش‌ها برای دسترسی سریع‌تر

### 4. بهبود مستمر

- جمع‌آوری بازخورد از کاربران
- بهبود پرامپت بر اساس نتایج
- افزودن معیارهای جدید به تحلیل

---

## پشتیبانی و توسعه

### فایل‌های مرتبط

- Controller: `app/Http/Controllers/Admin/TeamPerformanceController.php`
- View: `resources/views/admin/team-performance/index.blade.php`
- Routes: `routes/web.php`
- Models: `app/Models/PurchaseRequest.php`, `app/Models/PriceInquirySession.php`, `app/Models/ApiKey.php`

### توسعه‌های آینده

- [ ] افزودن فیلترهای زمانی (انتخاب بازه زمانی)
- [ ] افزودن نمودارهای تعاملی
- [ ] ذخیره‌سازی گزارش‌های قبلی
- [ ] مقایسه عملکرد در بازه‌های زمانی مختلف
- [ ] Export گزارش به PDF/Excel
- [ ] افزودن هشدارهای خودکار برای الگوهای مشکوک

---

## نسخه

**نسخه مستند:** 1.0.0  
**تاریخ آخرین به‌روزرسانی:** 2025-01-XX  
**نویسنده:** سیستم مدیریت خرید و فروش مواد شیمیایی

---

## مجوز

این مستند بخشی از سیستم مدیریت خرید و فروش مواد شیمیایی است.

