<?php
namespace Database\Factories;
use App\Modules\Support\Models\SupportTicket;
use App\Modules\User\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
class SupportTicketFactory extends Factory
{
protected $model = SupportTicket::class;
public function definition(): array
{
return [
'ticket_number' => SupportTicket::generateTicketNumber(),
'user_id' => User::factory(),
'vendor_id' => null,
'order_id' => null,
'subject' => fake()->sentence(6),
'status' => 'open',
'priority' => fake()->randomElement(['low', 'medium', 'high']),
'category' => fake()->randomElement(['order_issue', 'payment', 'shipping', 'product', 'other']),
'assigned_to' => null,
'first_reply_at'=> null,
'resolved_at' => null,
'last_reply_at' => null,
];
}
public function open(): static
{
return $this->state(['status' => 'open']);
}
public function resolved(): static
{
return $this->state([
'status' => 'resolved',
'resolved_at' => now()->subHour(),
]);
}
public function closed(): static
{
return $this->state(['status' => 'closed']);
}
public function urgent(): static
{
return $this->state(['priority' => 'urgent']);
}
}