Files
portal/app/database/factories/DealFactory.php
T

42 lines
1.5 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace Database\Factories;
use App\Models\Deal;
use App\Models\Project;
use App\Models\Tenant;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Carbon;
/**
* @extends Factory<Deal>
*/
class DealFactory extends Factory
{
public function definition(): array
{
// received_at в текущем месяце — попадает в стартовую партицию deals_2026_05.
// В тестах при выходе за границы существующих партиций нужно явно
// указывать ->state(['received_at' => ...]).
// tenant_id и project_id создаются независимыми factories (deals НЕ имеет
// FK на tenants/projects из-за партиционирования). Тесты, требующие
// согласованности, передают tenant_id и project_id явно.
return [
'tenant_id' => Tenant::factory(),
'project_id' => Project::factory(),
'source_crm_id' => fake()->unique()->numberBetween(100_000_000, 999_999_999),
'phone' => '7'.fake()->numerify('##########'),
'phones' => null,
'status' => 'new',
'contact_name' => fake()->firstName(),
'comment' => null,
'manager_id' => null,
'escalated_count' => 0,
'is_test' => false,
'received_at' => Carbon::now(),
];
}
}