Pular para o conteúdo principal

Catálogo dos geradores de domínio

O PersonaDB possui 24 geradores executados em ordem topológica por persona_db.scripts.generate.DOMAIN_PIPELINE. A tabela abaixo é derivada do código-fonte a cada build da documentação.

GeradorOrdemTabelasResumo
gen_02_genealogia110gen_02_genealogia — domínio 02: família, parentesco, herança e ancestralidade.
gen_01_identidade29gen_01_identidade — domínio 01: documentos, biometria, fenótipos, idiomas.
gen_03_saude327gen_03_saude — domínio 03: saúde.
gen_18_religiao46gen_18_religiao — domínio 18: crenças, instituições religiosas, rituais, conversões e dízimos.
gen_04_educacao514gen_04_educacao — domínio 04: trajetória educacional, notas, bolsas e estágios.
gen_20_militar66gen_20_militar — domínio 20: alistamento militar obrigatório, incorporação, patentes e baixas.
gen_05_carreira716gen_05_carreira — domínio 05: empresas, cargos, contratos, salários e carreira.
gen_06_financas818gen_06_financas — domínio 06: contas bancárias, transações, investimentos e patrimônio.
gen_07_residencia98gen_07_residencia — domínio 07: endereços, residências, condomínios, aluguéis e vizinhos.
gen_11_juridico1013gen_11_juridico — domínio 11: processos judiciais, ocorrências, sentenças e antecedentes.
gen_08_relacionamentos1110gen_08_relacionamentos — domínio 08: relacionamentos afetivos, casamentos, divórcios e filhos.
gen_09_rede_social128gen_09_rede_social — domínio 09: amizades simétricas, grupos sociais, eventos e clubes.
gen_12_eleitoral138gen_12_eleitoral — domínio 12: partidos, eleições, candidaturas, filiações e votos.
gen_13_viagens1410gen_13_viagens — domínio 13: destinos, viagens, hospedagens, passagens e documentos de viagem.
gen_21_imigracao156gen_21_imigracao — domínio 21: vistos, naturalizações, residências permanentes e travessias.
gen_10_digital1612gen_10_digital — domínio 10: dispositivos, contas digitais, redes sociais e streaming.
gen_14_pets178gen_14_pets — domínio 14: animais de estimação, raças, clínicas veterinárias e vacinação.
gen_15_consumo1810gen_15_consumo — domínio 15: produtos, lojas, compras, avaliações e fidelidade.
gen_17_comportamento1910gen_17_comportamento — domínio 17: personalidade Big Five, hábitos, rotina e estilo de aprendizagem.
gen_19_esporte208gen_19_esporte — domínio 19: esportes praticados, clubes esportivos, competições e hobbies.
gen_22_comunicacao215gen_22_comunicacao — domínio 22: telefones, e-mails únicos, correspondências e registros de comunicação.
gen_23_midia225gen_23_midia — domínio 23: notícias, menções na mídia, prêmios, entrevistas e reputação.
gen_16_timeline237gen_16_timeline — domínio 16: consolidação da linha do tempo, marcos pessoais e luto.
gen_00_pessoa—0gen_00_pessoa — gera a persona base (tabela pessoa, domínio 00).

gen_02_genealogia​

gen_02_genealogia — domínio 02: família, parentesco, herança e ancestralidade.

Owned by Agent 10. Consome o contrato de gen_00_pessoa:

generate(personas, seed=7) -> dict[str, list[dict]]

Também enriquece cada persona com 'pai_id'/'mae_id'/'familia_id' (in-place) e propaga a herança genética de traços físicos (tipo sanguíneo, fator Rh, cor dos olhos, cor do cabelo, lateralidade, altura e peso) em ordem topológica geracional, permitindo que os domínios posteriores usem a árvore familiar com 100% de consistência mendeliana e poligênica.

Tabelas: familia, membro_familia, parentesco, arvore_genealogica, heranca, heranca_item, doacao_familiar, condicao_genetica, predisposicao_genetica, ancestralidade_ficticia.

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

ancestralidade_ficticia arvore_genealogica condicao_genetica doacao_familiar familia heranca heranca_item membro_familia parentesco predisposicao_genetica

gen_01_identidade​

gen_01_identidade — domínio 01: documentos, biometria, fenótipos, idiomas.

Owned by Agent 10. Consome o contrato de gen_00_pessoa:

generate(persona, rng) -> dict[str, list[dict]]
generate_all(personas) -> dict[str, list[dict]]

Cada número de documento é 100% fictício e derivado deterministicamente da persona (CPF com dígitos verificadores válidos e padrão oficial).

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

pessoa_apelido pessoa_assinatura pessoa_biometria pessoa_caracteristica_fisica pessoa_documento pessoa_foto pessoa_idioma pessoa_marca_distintiva pessoa_nome_anterior

gen_03_saude​

gen_03_saude — domínio 03: saúde.

generate(personas, seed, today) -> dict[str, list[dict]]

Tabelas: doenca_pessoa, tratamento, sintoma_ocorrencia, exame, exame_resultado, prescricao, dosagem, cirurgia, internacao, alta_hospitalar, vacina_dose, alergia, alergia_reacao, condicao_cronica, saude_mental_registro, terapia, sessao_terapia, seguro_saude.

Catálogos (IDs determinísticos, sem FK externa): doenca, sintoma, medicamento, cirurgiao, hospital, leito, vacina, plano_saude, convenio, terapia (terapeuta como UUID fictício).

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

alergia alergia_reacao alta_hospitalar cirurgia cirurgiao condicao_cronica convenio doenca doenca_pessoa dosagem exame exame_resultado hospital internacao leito medicamento plano_saude prescricao saude_mental_registro seguro_saude sessao_terapia sintoma sintoma_ocorrencia terapia tratamento vacina vacina_dose

gen_18_religiao​

gen_18_religiao — domínio 18: crenças, instituições religiosas, rituais, conversões e dízimos.

Implementa a seção de Religião & Crenças de TASK-053 em TODO.MD:

  • Distribuição religiosa brasileira calibrada: Católica (~45%), Evangélica (~31%), Sem religião (~14%), Espírita (~4%), Matriz Africana (~3%), Outras (~3%).

  • Enriquece a persona com religiao e religiosidade_alta para consumo em relacionamentos (gen_08_relacionamentos) e comportamento eleitoral (gen_12_eleitoral).

  • Arquivo: persona_db/generators/gen_18_religiao.py (143 linhas)

  • Posição no pipeline: 4

  • Referência de API: gen_18_religiao

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

conversao_religiosa crenca dizimo_ficticio instituicao_religiosa participacao_religiosa ritual_ficticio

gen_04_educacao​

gen_04_educacao — domínio 04: trajetória educacional, notas, bolsas e estágios.

Implementa TASK-044 de TODO.MD:

  • Determina o nível máximo de escolaridade integrando escolaridade parental, classe socioeconômica e impactos de saúde (SocioeconomicEngine).

  • Simula matrículas sequenciais (fundamental -> medio -> superior -> pos) garantindo que o ensino superior ocorra somente após a conclusão do ensino médio.

  • Gera notas correlacionadas com variável latente de desempenho, saúde mental (-15% se transtorno mental) e trabalho paralelo (-8%).

  • Modela frequência escolar com penalidade Beta(2,5) * 30% e aumento de abandono escolar (+25%) em caso de doença grave.

  • Gera bolsas de estudo, certificados, diplomas, reprovações, estágios e empréstimos de biblioteca.

  • Arquivo: persona_db/generators/gen_04_educacao.py (456 linhas)

  • Posição no pipeline: 5

  • Referência de API: gen_04_educacao

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

biblioteca_emprestimo bolsa_estudo certificado curso diploma disciplina estagio frequencia_escolar instituicao_ensino matricula nota professor reprovacao turma

gen_20_militar​

gen_20_militar — domínio 20: alistamento militar obrigatório, incorporação, patentes e baixas.

Implementa a seção Militar de TASK-053 em TODO.MD:

  • Alistamento obrigatório exclusivamente para homens que atingiram 18 anos.

  • Probabilidade de incorporação P(incorporado | homem_18_anos) = 0.12.

  • Geração de servico_militar, patente, baixa_militar e condecoracao_ficticia.

  • Arquivo: persona_db/generators/gen_20_militar.py (135 linhas)

  • Posição no pipeline: 6

  • Referência de API: gen_20_militar

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

baixa_militar condecoracao_ficticia convocacao patente servico_militar unidade_militar

gen_05_carreira​

gen_05_carreira — domínio 05: empresas, cargos, contratos, salários e carreira.

Implementa TASK-045 de TODO.MD:

  • Entrada no mercado de trabalho coerente com idade e escolaridade (>= 18 anos para contratos CLT/PJ/público, >= 14 anos para estágio/aprendiz).

  • Influência familiar no setor e na empresa (nepotismo via SocioeconomicEngine) em ordem topológica geracional.

  • Salários mensais calibrados via SocioeconomicEngine.salary com piso no salário mínimo histórico vigente (MIN_WAGE_HISTORY).

  • Holerites com descontos progressivos de INSS e IRRF, benefícios, férias, avaliações de desempenho, promoções, demissões, licenças médicas, sindicatos e rede de colegas de trabalho.

  • Arquivo: persona_db/generators/gen_05_carreira.py (495 linhas)

  • Posição no pipeline: 7

  • Referência de API: gen_05_carreira

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

avaliacao_desempenho beneficio cargo certificacao_profissional colega_trabalho contrato_trabalho demissao empresa ferias habilidade_profissional historico_emprego holerite licenca_trabalho promocao salario sindicato_ficticio

gen_06_financas​

gen_06_financas — domínio 06: contas bancárias, transações, investimentos e patrimônio.

Implementa TASK-046 de TODO.MD:

  • Simulação financeira determinística integrando salário (gen_05_carreira), herança recebida (gen_02_genealogia) e impactos de saúde (gen_03_saude).

  • Investimentos diferenciados por classe social (poupanca D_E, CDB C1/C2, fundos B1/B2, acoes A) sempre limitados ao patrimônio total.

  • Imóveis e veículos correlacionados com classe social, idade e renda, com financiamento imobiliário coerente com valor_estimado do imóvel.

  • Snapshot de patrimônio estritamente coerente com o saldo das transações, investimentos e ativos físicos.

  • Arquivo: persona_db/generators/gen_06_financas.py (358 linhas)

  • Posição no pipeline: 8

  • Referência de API: gen_06_financas

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

banco cartao_credito carteira_investimento conta_bancaria corretora declaracao_imposto divida fatura financiamento imovel imovel_historico imposto investimento patrimonio_snapshot seguro transacao veiculo veiculo_historico

gen_07_residencia​

gen_07_residencia — domínio 07: endereços, residências, condomínios, aluguéis e vizinhos.

Implementa TASK-048 de TODO.MD:

  • Trajetória residencial correlacionada com cidade de nascimento, saída da casa dos pais (Normal(23, 4) para A/B e Normal(20, 3) para C/D/E), migração por oportunidade de trabalho (GeographyEngine) e mudanças familiares.

  • Bairros selecionados de acordo com o perfil socioeconômico (GeographyEngine).

  • Tipo de posse (proprio, financiado, alugado, cedido) alinhado com ativos e financiamentos gerados em gen_06_financas.

  • Arquivo: persona_db/generators/gen_07_residencia.py (253 linhas)

  • Posição no pipeline: 9

  • Referência de API: gen_07_residencia

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

condominio contrato_aluguel endereco financiamento_imobiliario historico_residencia residencia taxa_condominio vizinho

gen_11_juridico​

gen_11_juridico — domínio 11: processos judiciais, ocorrências, sentenças e antecedentes.

Implementa TASK-047 de TODO.MD:

  • Calcula envolvimento criminal via CriminalEngine incorporando preditores familiares (pai_criminal, mae_criminal, irmao_criminal), desemprego, abandono escolar, saúde mental, escolaridade e renda.

  • Garante imputabilidade penal (idade >= 18 anos na data do processo/julgamento).

  • Registra cadeia completa: processo -> processo_advogado -> julgamento -> sentenca -> pena -> antecedente_criminal.

  • Aplica impactos retroativos nos contratos de trabalho para garantir que nenhuma pessoa presa mantenha contrato de trabalho ativo durante o período de cumprimento de pena de prisão.

  • Gera ocorrências policiais, boletins de ocorrência, processos cíveis, multas e contratos jurídicos privados.

  • Arquivo: persona_db/generators/gen_11_juridico.py (427 linhas)

  • Posição no pipeline: 10

  • Referência de API: gen_11_juridico

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

advogado antecedente_criminal boletim_ocorrencia contrato_juridico julgamento multa ocorrencia_policial pena pessoa_processo processo processo_advogado sentenca tribunal

gen_08_relacionamentos​

gen_08_relacionamentos — domínio 08: relacionamentos afetivos, casamentos, divórcios e filhos.

Implementa TASK-049 de TODO.MD:

  • Linha do tempo afetiva utilizando FamilyEngine (engines/family.py).

  • Casamentos civis apenas para maiores de 18 anos (respeitando idade mínima legal >= 16 anos), sem casamentos simultâneos ativos e sem auto-referência.

  • Divórcios modulados pelos fatores de risco de FamilyEngine.divorce (doença mental do cônjuge, antecedente criminal, diferença de classe, desemprego prolongado, filhos pequenos e religiosidade).

  • Registros de filho, guarda_compartilhada e pensao_alimenticia estritamente consistentes com os vínculos parentais biológicos.

  • Arquivo: persona_db/generators/gen_08_relacionamentos.py (315 linhas)

  • Posição no pipeline: 11

  • Referência de API: gen_08_relacionamentos

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

adocao_ficticia casamento divorcio filho guarda_compartilhada namoro padrinho_madrinha pensao_alimenticia relacionamento uniao_estavel

gen_09_rede_social​

gen_09_rede_social — domínio 09: amizades simétricas, grupos sociais, eventos e clubes.

Gera as tabelas de rede social interpessoal (grupo_social, evento_social, clube, amizade, membro_grupo_social, participacao_evento_social, contato_pessoal, inimizade_ficticia), garantindo simetria estrita na tabela amizade (se A é amigo de B, B é amigo de A) conforme TASK-075.

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

amizade clube contato_pessoal evento_social grupo_social inimizade_ficticia membro_grupo_social participacao_evento_social

gen_12_eleitoral​

gen_12_eleitoral — domínio 12: partidos, eleições, candidaturas, filiações e votos.

Implementa TASK-050 de TODO.MD:

  • Modelo logístico de comportamento eleitoral (esquerda, centro, direita, abstencao) em função de classe socioeconômica, sindicalização, serviço militar e religiosidade.

  • Votos estritamente restritos a cidadãos com idade >= 16 anos na data do pleito (TASK-019, TASK-074).

  • Todo candidato registrado em candidato possui filiação partidária ativa no partido representado (filiacao_partidaria, TASK-074).

  • Arquivo: persona_db/generators/gen_12_eleitoral.py (225 linhas)

  • Posição no pipeline: 13

  • Referência de API: gen_12_eleitoral

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

candidato cargo_publico comparecimento_eleitoral doacao_campanha_ficticia eleicao filiacao_partidaria partido voto

gen_13_viagens​

gen_13_viagens — domínio 13: destinos, viagens, hospedagens, passagens e documentos de viagem.

Implementa TASK-051 de TODO.MD:

  • Probabilidade de viagens nacionais e internacionais modulada pela classe socioeconômica, renda e posse de passaporte.

  • Toda viagem internacional possui passaporte válido na data da viagem em documento_viagem (e sincronizado com pessoa_documento), garantindo 100% de consistência em val_temporal.py.

  • Viagens de negócios correlacionadas com setor e carreira.

  • Arquivo: persona_db/generators/gen_13_viagens.py (234 linhas)

  • Posição no pipeline: 14

  • Referência de API: gen_13_viagens

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

bagagem companhia_viagem destino documento_viagem hospedagem passagem roteiro_viagem seguro_viagem transporte_viagem viagem

gen_21_imigracao​

gen_21_imigracao — domínio 21: vistos, naturalizações, residências permanentes e travessias.

Implementa a seção de Imigração & Documentos de TASK-053 em TODO.MD:

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

deportacao_ficticia documento_identidade fronteira_travessia_ficticia naturalizacao_ficticia residencia_permanente_ficticia visto_ficticio

gen_10_digital​

gen_10_digital — domínio 10: dispositivos, contas digitais, redes sociais e streaming.

Implementa TASK-052 de TODO.MD:

  • Adoção de smartphones e dispositivos por idade e classe socioeconômica.

  • Plataformas de redes sociais diferenciadas por faixa etária (TikTok/Instagram para jovens, Facebook/LinkedIn para adultos).

  • Distribuição power-law (log-normal de cauda pesada) para número de seguidores.

  • Força de senha correlacionada com o nível de escolaridade.

  • Arquivo: persona_db/generators/gen_10_digital.py (246 linhas)

  • Posição no pipeline: 16

  • Referência de API: gen_10_digital

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

app_instalado assinatura_streaming conta_digital dispositivo dispositivo_troca_historico historico_navegacao_ficticio jogo perfil_rede_social progresso_jogo provedor_internet publicacao_rede_social senha_registro_ficticio

gen_14_pets​

gen_14_pets — domínio 14: animais de estimação, raças, clínicas veterinárias e vacinação.

Implementa a seção de Pets de TASK-053 em TODO.MD:

  • Probabilidade de posse de pet em função da classe social e perfil familiar.

  • Raças correlacionadas com classe socioeconômica.

  • Consultas veterinárias, vacinas e histórico de adoção/tutela.

  • Arquivo: persona_db/generators/gen_14_pets.py (164 linhas)

  • Posição no pipeline: 17

  • Referência de API: gen_14_pets

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

adocao_pet clinica_veterinaria consulta_veterinaria pet pet_historico_dono raca vacina_pet veterinario

gen_15_consumo​

gen_15_consumo — domínio 15: produtos, lojas, compras, avaliações e fidelidade.

Implementa a seção de Consumo de TASK-053 em TODO.MD:

  • Padrões de compra modulados por renda, classe socioeconômica e sazonalidade.

  • Avaliações de produtos, assinaturas de serviços, devoluções, programas de fidelidade, carrinhos abandonados e histórico de preços.

  • Arquivo: persona_db/generators/gen_15_consumo.py (170 linhas)

  • Posição no pipeline: 18

  • Referência de API: gen_15_consumo

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

assinatura_servico avaliacao_produto carrinho_abandonado compra devolucao historico_preco item_compra loja produto programa_fidelidade

gen_17_comportamento​

gen_17_comportamento — domínio 17: personalidade Big Five, hábitos, rotina e estilo de aprendizagem.

Implementa a seção de Comportamento & Personalidade de TASK-053 em TODO.MD:

  • Traços de personalidade Big Five (abertura, conscienciosidade, extroversao, amabilidade, neuroticismo) em [0, 10].

  • Hábitos, rotina diária, preferências, aversões, habilidades, talentos, medos, sonhos e estilo de aprendizagem.

  • Arquivo: persona_db/generators/gen_17_comportamento.py (183 linhas)

  • Posição no pipeline: 19

  • Referência de API: gen_17_comportamento

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

aversao estilo_aprendizagem habilidade habito medo_ficticio preferencia rotina_diaria sonho_ficticio talento traco_personalidade

gen_19_esporte​

gen_19_esporte — domínio 19: esportes praticados, clubes esportivos, competições e hobbies.

Implementa a seção de Esporte & Lazer de TASK-053 em TODO.MD:

  • Prática de esportes, filiação a clubes esportivos, participação em competições, aquisição de equipamentos esportivos, hobbies e coleções.

  • Arquivo: persona_db/generators/gen_19_esporte.py (151 linhas)

  • Posição no pipeline: 20

  • Referência de API: gen_19_esporte

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

clube_esportivo colecao_ficticia competicao equipamento_esportivo esporte_praticado hobby membro_clube_esportivo resultado_competicao

gen_22_comunicacao​

gen_22_comunicacao — domínio 22: telefones, e-mails únicos, correspondências e registros de comunicação.

Implementa a seção de Comunicação de TASK-053 em TODO.MD:

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

correspondencia email ligacao_registro mensagem_registro telefone

gen_23_midia​

gen_23_midia — domínio 23: notícias, menções na mídia, prêmios, entrevistas e reputação.

Implementa a seção de Mídia & Reputação de TASK-053 em TODO.MD:

  • Calcula reputacao_score como função agregada de antecedentes criminais, menções na mídia, exercício de cargo público e escolaridade.

  • Gera notícias, menções, prêmios e entrevistas fictícias.

  • Arquivo: persona_db/generators/gen_23_midia.py (141 linhas)

  • Posição no pipeline: 22

  • Referência de API: gen_23_midia

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

entrevista_ficticia mencao_midia noticia_ficticia premio_ficticio reputacao_score

gen_16_timeline​

gen_16_timeline — domínio 16: consolidação da linha do tempo, marcos pessoais e luto.

Implementa TASK-054 de TODO.MD (roda por último entre os geradores de domínio):

  • Consolida todos os eventos relevantes da vida da persona (nascimento, formatura, primeiro_emprego, casamento, divorcio, nascimento_filho, diagnostico_doenca, processo_criminal, compra_imovel, obito) em evento_vida.

  • Ordena cronologicamente em linha_do_tempo e atribui importância 1-10 em marco_historico_pessoal.

  • Cruza com falecimentos de parentes para preencher luto_ficticio.

  • Registra a semente determinística de cada persona em semente_aleatoria.

  • Arquivo: persona_db/generators/gen_16_timeline.py (207 linhas)

  • Posição no pipeline: 23

  • Referência de API: gen_16_timeline

Tabelas populadas (detectadas cruzando literais do módulo com o DDL):

aniversario comemoracao evento_vida linha_do_tempo luto_ficticio marco_historico_pessoal semente_aleatoria

gen_00_pessoa​

gen_00_pessoa — gera a persona base (tabela pessoa, domínio 00).

Owned by Agent 10. Produz dicionários deterministicamente a partir de um seed mestre; todos os atributos são derivados dos engines (socio, health, geography, genetics, criminal) e dos seeds.

Contrato de saída (chaves do dict persona) — consumido por gen_01, gen_02 e pelos demais generators:

id, nome_completo, nome_social, data_nascimento (ISO str), sexo,
nacionalidade, cidade_nascimento, uf_nascimento, classe_social,
estado_civil, esta_vivo, data_obito,
education, setor_empregado, ancestry, ancestry_pcts,
cor_olhos, cor_cabelo, pele, mao_dominante, tipo_sanguineo, fator_rh,
altura, peso, criminal (dict do CriminalEngine), cidade_residencia