2025-10-21 17:23:54 -06:00

65 lines
2.1 KiB
PHP

<?php
namespace Database\Factories;
use App\Models\Error;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Error>
*/
class ErrorFactory extends Factory
{
protected $model = Error::class;
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
$errorTypes = [
['code' => 'E001', 'description' => 'Vehículo reportado como robado'],
['code' => 'E002', 'description' => 'Número de serie no válido o no coincide'],
['code' => 'E003', 'description' => 'Documentos incompletos o ilegibles'],
['code' => 'E004', 'description' => 'Propietario no coincide con documentos'],
['code' => 'E005', 'description' => 'Placas no corresponden al vehículo'],
['code' => 'E006', 'description' => 'Vehículo presenta adulteración'],
['code' => 'E007', 'description' => 'RFC o CURP inválido'],
['code' => 'E008', 'description' => 'Factura apócrifa o alterada'],
['code' => 'E009', 'description' => 'Vehículo importado sin documentación legal'],
['code' => 'E010', 'description' => 'Error en sistema REPUVE externo'],
];
$error = fake()->randomElement($errorTypes);
return [
'code' => $error['code'] . '-' . fake()->unique()->numberBetween(1000, 9999),
'description' => $error['description'],
];
}
/**
* State for stolen vehicle error
*/
public function stolen(): static
{
return $this->state(fn (array $attributes) => [
'code' => 'E001-' . fake()->unique()->numberBetween(1000, 9999),
'description' => 'Vehículo reportado como robado',
]);
}
/**
* State for invalid VIN error
*/
public function invalidVin(): static
{
return $this->state(fn (array $attributes) => [
'code' => 'E002-' . fake()->unique()->numberBetween(1000, 9999),
'description' => 'Número de serie no válido o no coincide',
]);
}
}