import 'package:flutter/material.dart';

import '../config/app_config.dart';
import '../modules/feature_module.dart';
import '../screens/sales_orders_screen.dart';

class SalesOperationsModule extends FeatureModule {
  SalesOperationsModule();

  @override
  String get key => 'sales_operations';

  @override
  bool get isEnabled => AppConfig.enableSalesOperations;

  @override
  List<ModuleDashboardCard> get dashboardCards => [
        ModuleDashboardCard(
          id: 'sales_orders',
          route: 'sales_orders',
          title: '受注管理',
          description: '受注入力と進捗管理',
          iconName: 'assignment',
          onTap: (context) async {
            await Navigator.push(context, MaterialPageRoute(builder: (_) => const SalesOrdersScreen()));
          },
        ),
        ModuleDashboardCard(
          id: 'shipments',
          route: 'shipments',
          title: '出荷管理',
          description: 'ピッキング・配送番号登録',
          iconName: 'local_shipping',
          onTap: (context) async {
            await Navigator.push(context, MaterialPageRoute(builder: (_) => const SalesShipmentsScreen()));
          },
        ),
        ModuleDashboardCard(
          id: 'inventory',
          route: 'inventory',
          title: '在庫管理',
          description: '残高/入出庫履歴を確認',
          iconName: 'inventory_2',
          onTap: (context) async {
            await Navigator.push(context, MaterialPageRoute(builder: (_) => const SalesInventoryScreen()));
          },
        ),
        ModuleDashboardCard(
          id: 'receivables',
          route: 'receivables',
          title: '回収・入金',
          description: '売掛残高と入金状況',
          iconName: 'account_balance',
          onTap: (context) async {
            await Navigator.push(context, MaterialPageRoute(builder: (_) => const SalesReceivablesScreen()));
          },
        ),
      ];
}
