65 lines
2.1 KiB
PHP
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',
|
|
]);
|
|
}
|
|
}
|