New-Thanasoft/thanasoft-back/database/seeders/ProductCategorySeeder.php
2026-04-29 08:44:03 +03:00

184 lines
5.7 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\ProductCategory;
class ProductCategorySeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// Create generic root categories
$electronique = ProductCategory::firstOrCreate([
'code' => 'ELECTRONIQUE',
], [
'name' => 'Électronique',
'description' => 'Produits électroniques et technologiques',
'intervention' => false,
'active' => true,
]);
$alimentaire = ProductCategory::firstOrCreate([
'code' => 'ALIMENTAIRE',
], [
'name' => 'Alimentaire',
'description' => 'Produits alimentaires et boissons',
'intervention' => false,
'active' => true,
]);
$medical = ProductCategory::firstOrCreate([
'code' => 'MEDICAL',
], [
'name' => 'Médical',
'description' => 'Produits médicaux et pharmaceutiques',
'intervention' => false,
'active' => true,
]);
$interventions = ProductCategory::firstOrCreate([
'code' => 'INTERVENTIONS',
], [
'name' => 'Interventions',
'description' => 'Catégories de soins et prestations dédiées aux interventions funéraires.',
'intervention' => true,
'active' => true,
]);
$produits = ProductCategory::firstOrCreate([
'code' => 'PRODUITS',
], [
'name' => 'Produits',
'description' => 'Catégories de produits généraux et consommables.',
'intervention' => false,
'active' => true,
]);
// Create subcategories
ProductCategory::firstOrCreate([
'code' => 'TELEPHONE',
], [
'parent_id' => $electronique->id,
'name' => 'Téléphones',
'description' => 'Smartphones et téléphones mobiles',
'intervention' => false,
'active' => true,
]);
ProductCategory::firstOrCreate([
'code' => 'ORDINATEUR',
], [
'parent_id' => $electronique->id,
'name' => 'Ordinateurs',
'description' => 'Ordinateurs portables et de bureau',
'intervention' => false,
'active' => true,
]);
ProductCategory::firstOrCreate([
'code' => 'FRUITS',
], [
'parent_id' => $alimentaire->id,
'name' => 'Fruits',
'description' => 'Fruits frais et transformés',
'intervention' => false,
'active' => true,
]);
ProductCategory::firstOrCreate([
'code' => 'LEGUMES',
], [
'parent_id' => $alimentaire->id,
'name' => 'Légumes',
'description' => 'Légumes frais et transformés',
'intervention' => false,
'active' => true,
]);
ProductCategory::firstOrCreate([
'code' => 'MEDICAMENT',
], [
'parent_id' => $medical->id,
'name' => 'Médicaments',
'description' => 'Médicaments et traitements',
'intervention' => false,
'active' => true,
]);
ProductCategory::firstOrCreate([
'code' => 'MATERIEL',
], [
'parent_id' => $medical->id,
'name' => 'Matériel Médical',
'description' => 'Équipements et instruments médicaux',
'intervention' => false,
'active' => true,
]);
ProductCategory::firstOrCreate([
'code' => 'SOINS_THANATO',
], [
'parent_id' => $interventions->id,
'name' => 'Soins thanatopraxiques',
'description' => 'Soins de conservation, présentation et préparation du défunt.',
'intervention' => true,
'active' => true,
]);
ProductCategory::firstOrCreate([
'code' => 'PREPARATION_DEFUNT',
], [
'parent_id' => $interventions->id,
'name' => 'Préparation du défunt',
'description' => 'Toilette mortuaire, habillage et préparation avant cérémonie.',
'intervention' => true,
'active' => true,
]);
ProductCategory::firstOrCreate([
'code' => 'ACCESSOIRES_FUNERAIRES',
], [
'parent_id' => $produits->id,
'name' => 'Accessoires funéraires',
'description' => 'Consommables et accessoires utilisés lors des prestations funéraires.',
'intervention' => false,
'active' => true,
]);
ProductCategory::firstOrCreate([
'code' => 'CONSOMMABLES_SOINS',
], [
'parent_id' => $produits->id,
'name' => 'Consommables de soins',
'description' => 'Produits consommables utilisés pendant les soins d\'intervention.',
'intervention' => false,
'active' => true,
]);
// Create some inactive categories for testing
ProductCategory::firstOrCreate([
'code' => 'COSMETIQUE',
], [
'code' => 'COSMETIQUE',
'name' => 'Cosmétique',
'description' => 'Produits cosmétiques et de beauté',
'intervention' => false,
'active' => false,
]);
ProductCategory::firstOrCreate([
'code' => 'MENAGE',
], [
'code' => 'MENAGE',
'name' => 'Ménage',
'description' => 'Produits d\'entretien et de nettoyage',
'intervention' => false,
'active' => false,
]);
}
}