<?php

namespace Database\Factories;

use App\Models\Domain;
use Illuminate\Database\Eloquent\Factories\Factory;

/**
 * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Mailbox>
 */
class MailboxFactory extends Factory
{
    /**
     * Define the model's default state.
     *
     * @return array<string, mixed>
     */
    public function definition(): array
    {
        return [
            'mailbox_hash' => bin2hex(random_bytes(32)),
            'domain_hash' => Domain::factory(),
            'user_id' => null, // Changed from \App\Models\User::factory() to null as per instruction
            'session_id' => $this->faker->uuid(),
            'address' => $this->faker->unique()->safeEmail(),
            'type' => 'public',
            'created_ip' => $this->faker->ipv4(),
            'last_accessed_ip' => $this->faker->ipv4(),
            'last_accessed_at' => now(),
            'expires_at' => now()->addDays(7),
        ];
    }
}
