<?php
declare(strict_types=1);

use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry;
use App\Modules\Procurement\Services\ItemPriceTrackingService;

// ────────────────────────────────────────────────────────────
// Procurement — Event Listeners
// ────────────────────────────────────────────────────────────

ItemPriceTrackingService::registerListeners();

// ────────────────────────────────────────────────────────────
// Procurement — Permissions
// ────────────────────────────────────────────────────────────

PermissionRegistry::register('procurement', [
    'procurement.dashboard'      => ['ar' => 'لوحة تحكم المشتريات',       'en' => 'Procurement Dashboard'],
    'procurement.pr.view'        => ['ar' => 'عرض طلبات الشراء',          'en' => 'View Purchase Requisitions'],
    'procurement.pr.create'      => ['ar' => 'إنشاء طلبات شراء',          'en' => 'Create Purchase Requisitions'],
    'procurement.pr.approve'     => ['ar' => 'اعتماد طلبات الشراء',        'en' => 'Approve Purchase Requisitions'],
    'procurement.pr.convert'     => ['ar' => 'تحويل طلب شراء لأمر شراء',  'en' => 'Convert PR to PO'],
    'procurement.grn.view'       => ['ar' => 'عرض أذونات الاستلام',        'en' => 'View Goods Received Notes'],
    'procurement.grn.create'     => ['ar' => 'إنشاء إذن استلام',           'en' => 'Create Goods Received Notes'],
    'procurement.grn.inspect'    => ['ar' => 'فحص واعتماد الاستلام',       'en' => 'Inspect & Accept GRN'],
    'procurement.invoice.view'   => ['ar' => 'عرض فواتير الموردين',        'en' => 'View Vendor Invoices'],
    'procurement.invoice.create' => ['ar' => 'إنشاء فاتورة مورد',          'en' => 'Create Vendor Invoices'],
    'procurement.invoice.approve'=> ['ar' => 'اعتماد فواتير الموردين',      'en' => 'Approve Vendor Invoices'],
    'procurement.payment.view'   => ['ar' => 'عرض مدفوعات الموردين',       'en' => 'View Vendor Payments'],
    'procurement.payment.create' => ['ar' => 'إنشاء دفعة مورد',            'en' => 'Create Vendor Payments'],
    'procurement.payment.approve'=> ['ar' => 'اعتماد مدفوعات الموردين',     'en' => 'Approve Vendor Payments'],
    'procurement.rtv.view'       => ['ar' => 'عرض مرتجعات الموردين',       'en' => 'View Returns to Vendor'],
    'procurement.rtv.create'     => ['ar' => 'إنشاء مرتجع مورد',           'en' => 'Create Return to Vendor'],
    'procurement.rtv.approve'    => ['ar' => 'اعتماد مرتجعات الموردين',     'en' => 'Approve Returns to Vendor'],
    'procurement.rtv.manage'     => ['ar' => 'إدارة شحن وإتمام المرتجعات',  'en' => 'Manage RTV Ship & Complete'],
    'procurement.report'         => ['ar' => 'تقارير المشتريات',            'en' => 'Procurement Reports'],
    'procurement.quote.view'     => ['ar' => 'عرض عروض الأسعار',           'en' => 'View Supplier Quotes'],
    'procurement.quote.create'   => ['ar' => 'إنشاء طلبات عروض أسعار',     'en' => 'Create Quote Requests'],
    'procurement.quote.evaluate' => ['ar' => 'تقييم ومقارنة العروض',        'en' => 'Evaluate & Compare Quotes'],
]);

// ────────────────────────────────────────────────────────────
// Procurement — Sidebar menu (order 710, after Inventory at 700)
// ────────────────────────────────────────────────────────────

MenuRegistry::register('procurement', [
    'label_ar'   => 'المشتريات',
    'label_en'   => 'Procurement',
    'icon'       => 'shopping-cart',
    'route'      => '/procurement',
    'permission' => 'procurement.dashboard',
    'parent'     => null,
    'order'      => 710,
    'children'   => [
        ['label_ar' => 'لوحة التحكم',         'label_en' => 'Dashboard',              'route' => '/procurement',                    'permission' => 'procurement.dashboard',      'order' => 1],
        ['label_ar' => 'طلبات الشراء',         'label_en' => 'Purchase Requisitions',  'route' => '/procurement/requisitions',        'permission' => 'procurement.pr.view',        'order' => 2],
        ['label_ar' => 'أذونات الاستلام',      'label_en' => 'Goods Received Notes',   'route' => '/procurement/grn',                'permission' => 'procurement.grn.view',       'order' => 3],
        ['label_ar' => 'فواتير الموردين',      'label_en' => 'Vendor Invoices',        'route' => '/procurement/invoices',            'permission' => 'procurement.invoice.view',   'order' => 4],
        ['label_ar' => 'مدفوعات الموردين',     'label_en' => 'Vendor Payments',        'route' => '/procurement/payments',            'permission' => 'procurement.payment.view',   'order' => 5],
        ['label_ar' => 'مرتجعات الموردين',     'label_en' => 'Returns to Vendor',      'route' => '/procurement/rtv',                 'permission' => 'procurement.rtv.view',       'order' => 6],
        ['label_ar' => 'عروض الأسعار',         'label_en' => 'Supplier Quotes',        'route' => '/procurement/quotes',                  'permission' => 'procurement.quote.view',  'order' => 7],
        ['label_ar' => 'تتبع التسليم',         'label_en' => 'Delivery Tracking',      'route' => '/procurement/reports/overdue-deliveries', 'permission' => 'procurement.report',  'order' => 8],
        ['label_ar' => 'رصيد أوامر الشراء',    'label_en' => 'PO Balance',             'route' => '/procurement/reports/po-balance',         'permission' => 'procurement.report',  'order' => 9],
        ['label_ar' => 'تقارير المشتريات',     'label_en' => 'Procurement Reports',    'route' => '/procurement/reports/purchase-volume',    'permission' => 'procurement.report',  'order' => 10],
    ],
]);
