44 lines
1.1 KiB
PHP
44 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Models\SupplierModel;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
/**
|
|
* 供应商工厂(确定性序列数据,无需 Faker)
|
|
*
|
|
* @extends Factory<SupplierModel>
|
|
*/
|
|
class SupplierModelFactory extends Factory
|
|
{
|
|
protected $model = SupplierModel::class;
|
|
|
|
private const MAIN_PRODUCTS = ['蔬菜', '水果', '蔬菜/水果', '肉禽蛋'];
|
|
|
|
private static int $sequence = 0;
|
|
|
|
public function definition(): array
|
|
{
|
|
$seq = ++self::$sequence;
|
|
|
|
return [
|
|
'name' => '测试供应商' . $seq,
|
|
'contact' => '联系人' . $seq,
|
|
'phone' => '139' . str_pad((string) $seq, 8, '0', STR_PAD_LEFT),
|
|
'address' => '供应商地址' . $seq . '号',
|
|
'main_products' => self::MAIN_PRODUCTS[$seq % count(self::MAIN_PRODUCTS)],
|
|
'status' => SupplierModel::STATUS_NORMAL,
|
|
'remark' => '',
|
|
];
|
|
}
|
|
|
|
/**
|
|
* 停用供应商
|
|
*/
|
|
public function disabled(): static
|
|
{
|
|
return $this->state(fn () => ['status' => SupplierModel::STATUS_DISABLED]);
|
|
}
|
|
}
|