<?php

namespace Database\Factories;

use App\Models\UsageLog;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;

/**
 * @extends Factory<UsageLog>
 */
class UsageLogFactory extends Factory
{
    /**
     * Define the model's default state.
     *
     * @return array<string, mixed>
     */
    public function definition(): array
    {
        return [
            'user_id' => User::factory(),
            'ip_address' => fake()->ipv4(),
            'emails_created_count' => fake()->numberBetween(0, 50),
            'emails_received_count' => fake()->numberBetween(0, 100),
            'emails_created_history' => json_encode([fake()->dateTime()->format('Y-m-d H:i:s') => fake()->numberBetween(1, 5)]),
            'emails_received_history' => json_encode([fake()->dateTime()->format('Y-m-d H:i:s') => fake()->numberBetween(1, 10)]),
            'created_at' => now(),
            'updated_at' => now(),
        ];
    }
}
