Admin panel changes (done)
1. لیست پروژه‌ها – فیلترها
فیلتر بازه زمانی (تاریخ): فیلتر «بازه زمانی» با دو DatePicker (از تاریخ / تا تاریخ) روی created_at اضافه شد.
فیلتر نوع محصول: فیلتر دسته با برچسب «نوع محصول / دسته» و همان رابطهٔ قبلی (جستجو و لیست کشویی).
فیلتر وضعیت: وضعیت‌ها به این موارد گسترش داده شد: فعال، تایید، رد، ویرایش، انتظار، داوری، امضا نشده، تکمیل شده، لغو شده، منقضی شده.
فیلتر تولیدکننده: همان فیلتر با جستجو روی نام برند، و با جستجو روی نام/کدملی/موبایل کاربر (از طریق modifyRelationshipQueryUsing).
فیلتر ثبت درخواست فروش: فیلتر «ثبت درخواست فروش» با گزینه‌های فعال/غیرفعال اضافه شد.
2. فعال/غیرفعال کردن ثبت درخواست فروش
ستون و فیلتر در جدول پروژه‌ها و فیلدهای فرم:
sale_registration_enabled (Toggle)
sale_deactivation_at (تایمر غیرفعال شدن در فرم و در دیتابیس)
3. ثبت پروژه جدید توسط ادمین
در فرم پروژه این فیلدها اضافه/تنظیم شده‌اند:
نام پروژه، کد پروژه (عددی خودکار)
انتخاب نوع محصول (دسته)، نژاد، محصول تولیدی
تعداد محصول، واحد ثبتی (راس/تعداد/وزن)، قیمت هر واحد
تصاویر پروژه (افزودن/حذف/ویرایش با FileUpload)
انتخاب تولیدکننده (همان Select با جستجو)
بازه پیش‌فروش (presale_start / presale_end)، زمان شروع/پایان پروژه
استان/شهرستان (همان قبل)
تخمین سود پروژه، توضیحات، متن قرارداد (contract_text)
4. مدل و دیتابیس
مایگریشن:
database/migrations/2026_02_20_100000_add_admin_project_fields_to_projects_table.php
فیلدهای جدید و گسترش enum وضعیت اضافه شده و برای رکوردهای قبلی code پر شده است.
مدل Project:
ریلیشن‌های product() و breed()، ثابت‌های وضعیت و واحد، کست‌ها، و تولید خودکار code در رویداد creating اضافه شده است.
اجرای مایگریشن
اگر مایگریشن هنوز اجرا نشده، در ترمینال اجرا کنید:
cd e:\Work\web\1404\11-rievo\rievo-apiphp artisan migrate --force
اگر خطای مربوط به تغییر نوع ستون status دیدید (مثلاً در MySQL)، ممکن است نیاز به نصب doctrine/dbal باشد یا بتوان همان گسترش enum را با یک دستور خام SQL مناسب برای دیتابیس شما نوشت.
مواردی که در پنل ادمین هنوز پیاده‌سازی نشده‌اند
این موارد یا مربوط به API/فرانت یا به موجودیت/جریان‌های جدا هستند و در این مرحله فقط در بک‌اند/پنل پایه‌گذاری شده یا نیاز به طراحی جدا دارند:
قرارداد کارفرما/تولیدکننده: مشاهده پس از خرید، کد تایید، امضای الکترونیکی — بیشتر در API و فرانت.
اتمام پروژه توسط ادمین: صفحه/لیست «پروژه‌های پایان‌یافته»، چک‌لیست پایانی، دکمه ثبت پایان، داوری، فاکتورها — نیاز به صفحه/اکشن و احتمالاً مدل/جدول جدا.
درخواست پروژه جدید توسط تولیدکننده: لیست درخواست‌ها برای ادمین، وضعیت (تایید/رد/ویرایش/انتظار) — نیاز به مدل مثلاً ProjectRequest و روت/ریسورس در Filament.
بخش مزرعه (تولیدکننده/کارفرما): باکس‌ها، نمودارها، گزارش‌ها — عمدتاً در فرانت/داشبورد.
RFP و فروشگاه: اضافه به سبد، نهایی کردن سفارش، لغو، دامداری سرمایه‌گذار — بیشتر در API و فرانت.
اگر بگویید کدام بخش را اول می‌خواهید (مثلاً «درخواست پروژه توسط تولیدکننده» یا «اتمام پروژه توسط ادمین»)، می‌توان مرحله‌به‌مرحله برای همان بخش در پنل ادمین و در صورت نیاز API طراحی و کد پیشنهاد داد.




۱. کیف پول و تراکنش‌ها / مدیریت مالی ادمین
لیست پرداخت‌ها به‌روزرسانی شده است:
فیلتر پروژه (رابطه با پروژه)
فیلتر تاریخ (بازه زمانی از/تا)
فیلتر شماره کارت، شماره همراه، ایمیل (جستجو در فیلدهای جدید)
فیلتر حساب کاربری (جستجو با نام، کدملی، موبایل، ایمیل)
فیلتر کد پیگیری (ref_id) و شناسه تراکنش (transaction_id)
فیلتر وضعیت
مشاهده اطلاعات کامل پرداخت با دکمه «مشاهده» در slide-over (بدون باز شدن صفحه جدید)
خروجی اکسل/CSV با دکمه «خروجی اکسل/CSV» بر اساس فیلترهای فعلی جدول
ستون‌های جدید در جدول پرداخت: project_id, card_number, cellphone, email. در فرم پرداخت هم فیلدهای پروژه، شماره کارت، موبایل و ایمیل اضافه شده است.
۲. برداشت (درخواست‌های برداشت)
مدل و مایگریشن WithdrawalRequest با فیلدهای: مبلغ، شماره شبا، به نام، موجودی کیف پول در زمان درخواست، وضعیت، یادداشت ادمین، شناسه واریز، تایید/رد توسط ادمین.
ریسورس Filament «درخواست‌های برداشت» در گروه مالی:
لیست با ستون‌ها: درخواست‌کننده، شماره همراه، کد ملی، مبلغ، شماره شبا، به نام، موجودی کیف پول، وضعیت، شناسه واریز، تاریخ/زمان
فیلترها: بازه زمانی، وضعیت، کاربر (جستجو)
مشاهده با slide-over
تایید: فرم (شناسه واریز + یادداشت) و ثبت تایید
رد: فرم (دلیل رد) و ثبت رد
بج روی منوی «درخواست‌های برداشت» برای نمایش تعداد درخواست‌های در انتظار
۳. گردش مالی
جدول و مدل wallet_transactions برای ثبت تراکنش‌های کیف پول (واریز، برداشت، سود، کارمزد و غیره).
ریسورس «گردش مالی» در گروه مالی با لیست و فیلترها: بازه زمانی، کاربر (کدملی/نام/موبایل/ایمیل)، کد پیگیری، وضعیت، پروژه.
۴. فاکتورها
جداول و مدل‌ها invoices و invoice_items با فیلدهای اصلی (شماره، پروژه، کاربر، نوع درآمد/هزینه، وضعیت، جمع، تاریخ صدور/سررسید و آیتم‌ها).
ریسورس «فاکتورها» در گروه مالی با لیست و فیلترها: بازه زمانی، وضعیت (پرداخت شده/نشده/تایید/رد/ویرایش)، نوع تراکنش (درآمد/هزینه)، پروژه.
فایل‌های مهم
مایگریشن‌ها:
database/migrations/2026_02_20_120000_add_project_and_meta_to_payments_table.php
database/migrations/2026_02_20_130000_create_withdrawal_requests_table.php
database/migrations/2026_02_20_140000_create_wallet_transactions_table.php
database/migrations/2026_02_20_141000_create_invoices_table.php
ریسورس‌ها:
Payments (جدول و فرم به‌روز شده)،
WithdrawalRequests،
WalletTransactions،
Invoices
اکسپورت پرداخت:
app/Filament/Exports/PaymentExporter.php
جزئیات بیشتر و لیست کارهای پیشنهادی بعدی در FINANCIAL_ADMIN_IMPLEMENTATION.md است.
برای اعمال تغییرات دیتابیس:
php artisan migrate
برای استفاده از خروجی اکسل/CSV، در صورت نیاز مایگریشن‌های صف و اعلان Filament را هم اجرا کنید (در فایل MD توضیح داده شده).