5use Illuminate\Database\Eloquent\Factories\Factory;
8use Illuminate\Support\Str;
32 'user_id' => User::factory(),
34 'original_url' => $this->faker->url(),
35 'clicks' => $this->faker->numberBetween(0, 1000),
36 'last_used_at' => $this->faker->dateTimeBetween(
'-6 months',
'now'),
45 $characters =
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
46 $charactersLength = strlen($characters);
49 for ($i = 0; $i < 6; $i++) {
50 $randomCode .= $characters[random_int(0, $charactersLength - 1)];
61 return $this->state(fn (array $attributes) => [
63 'last_used_at' =>
null,
72 return $this->state(fn (array $attributes) => [
73 'clicks' => $this->faker->numberBetween(50, 500),
74 'last_used_at' => $this->faker->dateTimeBetween(
'-7 days',
'now'),
83 return $this->state(fn (array $attributes) => [
84 'clicks' => $this->faker->numberBetween(100, 1000),
85 'last_used_at' => $this->faker->dateTimeBetween(
'-6 months',
'-3 months'),
94 return $this->state(fn (array $attributes) => [
95 'clicks' => $this->faker->numberBetween(500, 2000),
96 'last_used_at' => $this->faker->dateTimeBetween(
'-1 month',
'now'),
Factory for generating ShortUrl instances.
recentlyUsed()
Create a ShortUrl used recently.
neverUsed()
Create a ShortUrl that has never been used.
definition()
Define the model's default state.
generateAlphanumericCode()
Generate a 6-character alphanumeric code.
oldUsage()
Create a ShortUrl used long ago.
highTraffic()
Create a ShortUrl with high traffic.