*/ class ReclamationFactory extends Factory { protected $model = Reclamation::class; public function definition(): array { return [ 'order_id' => Order::factory(), 'user_id' => User::factory(), 'status_id' => Reclamation::STATUS_NEW, 'reason' => fake()->sentence(), 'guarantee' => fake()->boolean(), 'whats_done' => fake()->optional()->sentence(), 'create_date' => fake()->dateTimeBetween('-1 month', 'now')->format('Y-m-d'), 'finish_date' => fake()->dateTimeBetween('now', '+1 month')->format('Y-m-d'), 'start_work_date' => null, 'work_days' => fake()->numberBetween(1, 14), 'brigadier_id' => null, 'comment' => fake()->optional()->sentence(), ]; } public function withStatus(int $status): static { return $this->state(fn (array $attributes) => [ 'status_id' => $status, ]); } public function inWork(): static { return $this->state(fn (array $attributes) => [ 'status_id' => Reclamation::STATUS_IN_WORK, 'start_work_date' => now()->format('Y-m-d'), ]); } public function done(): static { return $this->state(fn (array $attributes) => [ 'status_id' => Reclamation::STATUS_DONE, 'finish_date' => now()->format('Y-m-d'), ]); } public function forOrder(Order $order): static { return $this->state(fn (array $attributes) => [ 'order_id' => $order->id, ]); } }