<?php

declare(strict_types=1);

namespace ImovelZapAi\Documents\Application\Services;

final class DocumentVariableCatalog
{
    /**
     * @return list<array{key: string, label: string, group: string}>
     */
    public function all(): array
    {
        return [
            ['key' => 'cliente.nome', 'label' => 'Nome do cliente', 'group' => 'Cliente'],
            ['key' => 'cliente.telefone', 'label' => 'Telefone do cliente', 'group' => 'Cliente'],
            ['key' => 'proprietario.nome', 'label' => 'Nome do proprietário', 'group' => 'Proprietário'],
            ['key' => 'imovel.titulo', 'label' => 'Título do imóvel', 'group' => 'Imóvel'],
            ['key' => 'imovel.endereco', 'label' => 'Endereço', 'group' => 'Imóvel'],
            ['key' => 'imovel.cidade', 'label' => 'Cidade', 'group' => 'Imóvel'],
            ['key' => 'imovel.valor', 'label' => 'Valor do imóvel', 'group' => 'Imóvel'],
            ['key' => 'imovel.condominio', 'label' => 'Valor do condomínio', 'group' => 'Imóvel'],
            ['key' => 'imovel.area', 'label' => 'Área', 'group' => 'Imóvel'],
            ['key' => 'imovel.quartos', 'label' => 'Quartos', 'group' => 'Imóvel'],
            ['key' => 'imovel.descricao', 'label' => 'Descrição do imóvel', 'group' => 'Imóvel'],
            ['key' => 'documento.valor', 'label' => 'Valor do documento', 'group' => 'Documento'],
            ['key' => 'documento.numero', 'label' => 'Número do documento', 'group' => 'Documento'],
            ['key' => 'documento.titulo', 'label' => 'Título do documento', 'group' => 'Documento'],
            ['key' => 'documento.mensagem', 'label' => 'Mensagem introdutória', 'group' => 'Documento'],
            ['key' => 'corretor.nome', 'label' => 'Nome do corretor', 'group' => 'Corretor'],
            ['key' => 'corretor.creci', 'label' => 'CRECI', 'group' => 'Corretor'],
            ['key' => 'corretor.telefone', 'label' => 'Telefone do corretor', 'group' => 'Corretor'],
            ['key' => 'empresa.nome', 'label' => 'Nome da imobiliária', 'group' => 'Empresa'],
            ['key' => 'empresa.logo', 'label' => 'URL do logo', 'group' => 'Empresa'],
            ['key' => 'data.hoje', 'label' => 'Data de hoje', 'group' => 'Data'],
        ];
    }

    /** @return list<string> */
    public function keys(): array
    {
        return array_column($this->all(), 'key');
    }
}
