2026-04-29 08:44:03 +03:00

121 lines
4.5 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\Product;
use App\Models\ProductCategory;
use Illuminate\Database\Seeder;
class ProductSeeder extends Seeder
{
public function run(): void
{
$products = [
[
'nom' => 'Soin de thanatopraxie standard',
'reference' => 'INT-THAN-001',
'category_code' => 'SOINS_THANATO',
'fabricant' => 'Thanasoft Care',
'stock_actuel' => 50,
'stock_minimum' => 10,
'unite' => 'prestation',
'prix_unitaire' => 320.00,
'conditionnement_nom' => 'Unité',
'conditionnement_quantite' => 1,
'conditionnement_unite' => 'prestation',
],
[
'nom' => 'Toilette mortuaire complète',
'reference' => 'INT-TOIL-001',
'category_code' => 'PREPARATION_DEFUNT',
'fabricant' => 'Thanasoft Care',
'stock_actuel' => 40,
'stock_minimum' => 8,
'unite' => 'prestation',
'prix_unitaire' => 180.00,
'conditionnement_nom' => 'Unité',
'conditionnement_quantite' => 1,
'conditionnement_unite' => 'prestation',
],
[
'nom' => 'Retrait pacemaker',
'reference' => 'INT-PACE-001',
'category_code' => 'PREPARATION_DEFUNT',
'fabricant' => 'Thanasoft Care',
'stock_actuel' => 20,
'stock_minimum' => 4,
'unite' => 'prestation',
'prix_unitaire' => 95.00,
'conditionnement_nom' => 'Unité',
'conditionnement_quantite' => 1,
'conditionnement_unite' => 'prestation',
],
[
'nom' => 'Kit de soins de conservation',
'reference' => 'PROD-SOIN-001',
'category_code' => 'CONSOMMABLES_SOINS',
'fabricant' => 'Mortuary Supply',
'stock_actuel' => 120,
'stock_minimum' => 25,
'unite' => 'kit',
'prix_unitaire' => 42.50,
'conditionnement_nom' => 'Carton',
'conditionnement_quantite' => 10,
'conditionnement_unite' => 'kit',
],
[
'nom' => 'Housse funéraire premium',
'reference' => 'PROD-HOUS-001',
'category_code' => 'ACCESSOIRES_FUNERAIRES',
'fabricant' => 'Funeral Equip',
'stock_actuel' => 75,
'stock_minimum' => 15,
'unite' => 'unité',
'prix_unitaire' => 28.90,
'conditionnement_nom' => 'Paquet',
'conditionnement_quantite' => 5,
'conditionnement_unite' => 'unité',
],
[
'nom' => 'Produit de désinfection mortuaire',
'reference' => 'PROD-DES-001',
'category_code' => 'CONSOMMABLES_SOINS',
'fabricant' => 'Mortuary Supply',
'stock_actuel' => 90,
'stock_minimum' => 20,
'unite' => 'litre',
'prix_unitaire' => 14.75,
'conditionnement_nom' => 'Bidon',
'conditionnement_quantite' => 5,
'conditionnement_unite' => 'litre',
],
];
foreach ($products as $data) {
$category = ProductCategory::where('code', $data['category_code'])->first();
if (! $category) {
continue;
}
Product::updateOrCreate(
['reference' => $data['reference']],
[
'nom' => $data['nom'],
'categorie_id' => $category->id,
'fabricant' => $data['fabricant'],
'stock_actuel' => $data['stock_actuel'],
'stock_minimum' => $data['stock_minimum'],
'unite' => $data['unite'],
'prix_unitaire' => $data['prix_unitaire'],
'conditionnement_nom' => $data['conditionnement_nom'],
'conditionnement_quantite' => $data['conditionnement_quantite'],
'conditionnement_unite' => $data['conditionnement_unite'],
'date_expiration' => null,
'numero_lot' => null,
'fournisseur_id' => null,
]
);
}
}
}