<?php

declare(strict_types=1);

return [
    /*
    |--------------------------------------------------------------------------
    | Entorno de seed
    |--------------------------------------------------------------------------
    | Puedes sobrescribirlo en .env con SEEDER_ENV
    | Ej: local, demo, staging, production
    */
    'env' => env('SEEDER_ENV', 'local'),

    /*
    |--------------------------------------------------------------------------
    | Módulos de seeders controlados
    |--------------------------------------------------------------------------
    */
    'modules' => [
        // ⚙️ Vuexy Admin
        'settings' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyAdmin\Database\Seeders\SettingSeeder::class,
            'file'    => 'settings.json',
        ],
        'permissions' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyAdmin\Database\Seeders\RbacSeeder::class,
        ],
        'users_admin' => [
            'enabled'  => true,
            'seeder'  => Koneko\VuexyAdmin\Database\Seeders\UserSeeder::class,
            'depends_on' => ['permissions'],
            'file'    => 'vendor/koneko/laravel-vuexy-admin/database/data/fixtures/users.csv',
        ],
        'users_local' => [
            'enabled'  => false,
            'seeder'  => Koneko\VuexyAdmin\Database\Seeders\UserSeeder::class,
            'depends_on' => ['users_admin'],
            'file'    => 'users.json',
        ],
        'user_fake' => [
            'enabled'  => true,
            'seeder'  => Koneko\VuexyAdmin\Database\Seeders\UserSeeder::class,
            'depends_on' => ['users_admin'],
            'faker_only' => true,
            'fake'    => [
                'min'    => 5,
                'max'    => 30,
                'images' => [
                    'assign_percent' => 75,
                    'source' => [
                        'vendor/koneko/laravel-vuexy-admin/resources/faker-images/users/flaticon.com',
                    ],
                ],
            ],
        ],

        // 📢 Notificaciones
        'notifications' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyAdmin\Database\Seeders\NotificationSeeder::class,
            'fake'    => ['min' => 5, 'max' => 50],
        ],
        'system_notifications' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyAdmin\Database\Seeders\SystemNotificationSeeder::class,
            'fake'    => ['min' => 5, 'max' => 50],
        ],
        'device_tokens' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyAdmin\Database\Seeders\DeviceTokenSeeder::class,
            'faker_only' => true, // Generar en modo fake generalmente
            'fake'    => ['min' => 5, 'max' => 50],
        ],

        // 🌐 Website Admin
        'website_sites' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyWebsiteAdmin\Database\Seeders\WebsiteSiteSeeder::class,
            'file'    => 'vendor/koneko/laravel-vuexy-website-admin/database/data/website-admin/website_sites.json',
        ],
        'website_seo_profiles' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyWebsiteAdmin\Database\Seeders\WebsiteSeoProfileSeeder::class,
            'depends_on' => ['website_sites'],
            'file'    => 'vendor/koneko/laravel-vuexy-website-admin/database/data/website-admin/website_seo_profiles.json',
        ],
        'website_menu' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyWebsiteAdmin\Database\Seeders\WebsiteMenuSeeder::class,
            'depends_on' => ['website_sites'],
            'file'    => 'vendor/koneko/laravel-vuexy-website-admin/database/data/website-admin/website_menus.json',
        ],

        'website_contents_agroform' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyWebsiteAdmin\Database\Seeders\WebsiteContentSeeder::class,
            'depends_on' => ['website_sites'],
            'file'    => 'vendor/koneko/laravel-vuexy-website-admin/database/data/website-admin/website_agroform_contents.json',
        ],
        'website_menu_agroform' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyWebsiteAdmin\Database\Seeders\WebsiteMenuItemSeeder::class,
            'depends_on' => ['website_contents_agroform'],
            'file'    => 'vendor/koneko/laravel-vuexy-website-admin/database/data/website-admin/website_agroform_menus.json',
        ],

        'website_contents_cleanfy' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyWebsiteAdmin\Database\Seeders\WebsiteContentSeeder::class,
            'depends_on' => ['website_sites'],
            'file'    => 'vendor/koneko/laravel-vuexy-website-admin/database/data/website-admin/website_cleanfy_contents.json',
        ],
        'website_menu_cleanfy' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyWebsiteAdmin\Database\Seeders\WebsiteMenuItemSeeder::class,
            'depends_on' => ['website_contents_cleanfy'],
            'file'    => 'vendor/koneko/laravel-vuexy-website-admin/database/data/website-admin/website_cleanfy_menus.json',
        ],

        'website_contents_realcity' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyWebsiteAdmin\Database\Seeders\WebsiteContentSeeder::class,
            'depends_on' => ['website_sites'],
            'file'    => 'vendor/koneko/laravel-vuexy-website-admin/database/data/website-admin/website_realcity_contents.json',
        ],
        'website_menu_realcity' => [
            'enabled' => true,
            'seeder'  => Koneko\VuexyWebsiteAdmin\Database\Seeders\WebsiteMenuItemSeeder::class,
            'depends_on' => ['website_contents_realcity'],
            'file'    => 'vendor/koneko/laravel-vuexy-website-admin/database/data/website-admin/website_realcity_menus.json',
        ],

        // 📊 Catalogos SAT
        'sat_catalogs' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexySatCatalogs\Database\Seeders\SatCatalogsSeeder::class,
        ],


        // 📞 Contactos
        'job_positions' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyContacts\Database\Seeders\JobPositionSeeder::class,
            'file'    => 'vuexy-contacts/job_positions.csv',
        ],
        'vehicle_brands' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyContacts\Database\Seeders\VehicleBrandSeeder::class,
            'file'    => 'vuexy-contacts/vehicle_brands.csv',
        ],
        'vehicle_types' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyContacts\Database\Seeders\VehicleTypeSeeder::class,
            'file'    => 'vuexy-contacts/vehicle_types.csv',
        ],
        'vehicles' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyContacts\Database\Seeders\VehicleSeeder::class,
            'depends_on' => ['vehicle_brands', 'vehicle_types', 'contacts_faker'],
            'faker_only' => true,
            'fake'    => ['min' => 2, 'max' => 100],
        ],
        'contacts_faker' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyContacts\Database\Seeders\ContactSeeder::class,
            'depends_on' => ['sat_catalogs', 'job_positions'],
            'faker_only' => true,
            'fake'    => [
                'min' => 50,
                'max' => 2000,
                'images' => [
                    'assign_percent' => 50,
                    'source' => [
                        'vendor/koneko/laravel-vuexy-admin/resources/faker-images/users/',
                        'vendor/koneko/laravel-vuexy-contacts/resources/faker-images/contacts',
                    ],
                ],
            ],
        ],

        // 🏪 Almacén
        'stores' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyStoreManager\Database\Seeders\StoreSeeder::class,
            'file'    => 'vuexy_store_manager/stores.json',
            'fake'    => ['min' => 0, 'max' => 5],
        ],
        'work_centers' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyStoreManager\Database\Seeders\StoreWorkCenterSeeder::class,
            'file'    => 'vuexy_store_manager/work_centers.json',
            'fake'    => ['min' => 0, 'max' => 4],
        ],
        'warehouses' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyWarehouse\Database\Seeders\WarehouseSeeder::class,
            'fake'    => ['min' => 0, 'max' => 4],
        ],
        'store_user_roles' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyStoreManager\Database\Seeders\StoreUserRoleSeeder::class,
            'fake'    => ['min' => 0, 'max' => 5],
        ],

        // 🛒 Pos
        'price_lists' => [
            'enabled' => false,
            'seeder'  => Koneko\VuexyPos\Database\Seeders\PriceListSeeder::class,
            'file'    => 'vuexy_pos/price_lists.csv',
            'fake'    => ['min' => 0, 'max' => 5],
        ],

        //  Infraestructura

    ],

    'defaults' => [
        'chunk_size'    => 500,
        'transactional' => false,
        'report'        => false,
        'quiet'         => false,
        'truncate'      => false,
    ],
    'clear_assets' => [
        'avatars'     => true,
        'initials'    => true,
        'products'    => false,
        'documents'   => false,
        'attachments' => false,
    ],
];
