<?php

declare(strict_types=1);

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;
use ImovelZapAi\Owners\Infrastructure\Persistence\Eloquent\ListingOpportunityModel;
use ImovelZapAi\Owners\Infrastructure\Persistence\Eloquent\ListingVisitModel;
use ImovelZapAi\Owners\Infrastructure\Persistence\Eloquent\OwnerModel;
use ImovelZapAi\Tenancy\Infrastructure\Persistence\Eloquent\TenantModel;
use ImovelZapAi\Visits\Domain\Enums\VisitPurpose;
use ImovelZapAi\Visits\Infrastructure\Persistence\Eloquent\VisitModel;

/** @extends Factory<ListingVisitModel> */
class ListingVisitFactory extends Factory
{
    protected $model = ListingVisitModel::class;

    public function definition(): array
    {
        return [
            'tenant_id' => TenantModel::factory(),
            'listing_opportunity_id' => ListingOpportunityModel::factory(),
            'visit_id' => VisitModel::factory(),
            'owner_id' => OwnerModel::factory(),
            'purpose' => VisitPurpose::ListingEvaluation,
        ];
    }
}
