<?php

declare(strict_types=1);

namespace ImovelZapAi\Conversations\Application\Services;

use ImovelZapAi\Properties\Application\Data\PropertySearchFilters;

final class ConversationSearchQuestioner
{
    public function nextRequiredField(PropertySearchFilters $filters): ?string
    {
        if ($filters->neighborhood === null && $filters->city === null) {
            return 'location';
        }

        return null;
    }

    public function questionFor(string $field, PropertySearchFilters $filters): string
    {
        return match ($field) {
            'purpose' => 'Você procura para *compra* ou *aluguel*? (opcional — pode ignorar e ver tudo na região)',
            'location' => $this->locationQuestion($filters),
            default => 'Me conte mais sobre o imóvel que procura.',
        };
    }

    private function locationQuestion(PropertySearchFilters $filters): string
    {
        if ($filters->type !== null) {
            return 'Qual *bairro* ou *cidade*?';
        }

        return 'Em qual *bairro* ou *cidade*?';
    }
}
