# گالری و اسناد (Gallery_Documents)

## انجام‌شده

### مایگریشن
- **`2026_02_20_200000_create_media_categories_and_media_items_tables.php`**
  - جدول **media_categories**: شاخه اصلی + زیرمجموعه (parent_id)، نام، نوع (gallery/document)، ترتیب
  - جدول **media_items**: project_id، uploader_type (admin/producer/employer)، uploader_id، type (image/video/document)، category_id، subcategory_id، name، file_path، files (json)، description، notes، tags، gps، status، admin_reason، start_at/end_at، contract_number، company_name، contact_phone، created_at_file، created_by

### مدل‌ها
- **MediaCategory**: parent، children، typeOptions()
- **MediaItem**: project، category، subcategory، type/uploader/status options، getUploaderDisplayAttribute

### ریسورس ادمین: دسته‌بندی گالری و اسناد (MediaCategoryResource)
- لیست دسته‌بندی‌ها (نام، شاخه اصلی، نوع، ترتیب)
- ایجاد/ویرایش دسته‌بندی (شاخه اصلی + دو زیرمجموعه با parent_id)

### ریسورس ادمین: گالری و اسناد (MediaItemResource)
- **آپلود فایل جدید**: انتخاب پروژه، نوع فایل (تصویر/ویدیو/سند)، برای سند: تاریخ شروع/خاتمه، شماره قرارداد، نام شرکت، تماس؛ انتخاب/بارگذاری فایل، نام فایل، تاریخ ایجاد فایل، دسته‌بندی و زیردسته، لوکیشن GPS (غیرسند)، توضیحات، یادداشت، برچسب‌ها؛ **ذخیره پیش‌نویس** و **تایید/ثبت نهایی**
- **لیست فایل‌ها**: پیش‌نمایش (برای تصویر)، نام، پروژه، نوع، دسته، ارسال‌کننده، وضعیت، تاریخ
- **فیلترها**: تاریخ، نوع فایل، ارسال‌کننده، وضعیت، پروژه، دسته‌بندی
- **اکشن‌های سطر**: مشاهده، تایید، رد (با دلیل)، درخواست ویرایش (با دلیل)، ویرایش
- **صفحه مشاهده**: پیش‌نمایش/فایل، اطلاعات، اطلاعات سند (در صورت سند)

---

## برای مرحله بعد (اختیاری)

- **گالری تولیدکننده**: آپلود تصویر/ویدیو با دسته، زیردسته، تاریخ، GPS، توضیحات، برچسب؛ ذخیره پیش‌نویس و ارسال برای ادمین (پنل تولیدکننده یا API).
- **اسناد تولیدکننده**: آپلود سند با دسته، نام، تاریخ شروع/خاتمه، قرارداد، شرکت، تماس؛ ارسال برای تایید.
- **گالری/اسناد کارفرما**: مشاهده تصاویر اخیر، آرشیو، جستجو و فیلتر، ثبت کامنت/امتیاز، دکمه ثبت هشدار برای فایل.
- **اسناد کارفرما**: باکس‌های مجوزها/گواهی، قراردادها/بیمه، سایر.
- **کامنت روی فایل**: رابطه با Comment (commentable_type = MediaItem).
- **لینک به صفحه کامنت** از لیست وقتی کامنت دارد.
- **آمار**: تعداد تصاویر/ویدئوهای اخیر در صفحه پروژه.

برای اعمال مایگریشن:
```bash
php artisan migrate
```
