184 lines
5.7 KiB
PHP
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,
|
|
]);
|
|
}
|
|
}
|