﻿# Acesso da area da empresa e seed de gestor

## O que mudou
- Foi criado o roteador raiz da area `/empresa`, fechando o circuito entre login, `.htaccess` e as paginas em `pages/empresa`.
- Foi adicionado um seed SQL para criar um gestor da `Empresa Alpha` com acesso direto ao contrato da empresa e home resolvendo para `/empresa`.
- O seed tambem aprova a empresa no metadado contratual, liberando a operacao da area sem depender de ajuste manual posterior.
- O seed foi simplificado para ficar mais compativel com a base real, gravando `user_dados` com os campos usados pelo sistema e reduzindo suposicoes rigidas sobre o schema.
- O seed passou a forcar collation nas comparacoes textuais mais sensiveis, evitando o erro `Illegal mix of collations` em bases com mistura entre `utf8mb4_general_ci`, `utf8mb4_unicode_520_ci` e variantes relacionadas.
- A estrategia de collation foi refinada para preservar indices em `wpjy_users`: em vez de converter a coluna inteira, o seed passou a collationar as variaveis de sessao e comparar direto com `user_login` e `user_email`, evitando timeout por varredura completa.
- A transacao explicita foi removida do seed para reduzir risco de `Lock wait timeout exceeded` em execucoes manuais pelo cliente SQL, especialmente apos tentativas anteriores interrompidas.
- O seed passou a separar a collation por contexto: `wpjy_users` continua em `utf8mb4_unicode_520_ci`, enquanto `wpjy_grupos_permissoes` e `wpjy_contratos_dados_categorias` usam variaveis em `utf8mb4_0900_ai_ci`.

## Impacto para a operacao
- Usuarios de empresa passam a ter um caminho consistente de entrada pela URL amigavel `/empresa/{pagina}`.
- O gestor seedado entra direto na area da empresa sem cair em selecao de tenant, porque fica vinculado apenas ao contrato da empresa.
- A estrutura existente de unidades continua visivel e gerenciavel a partir do contrato pai da empresa.

## Observacoes
- O seed foi pensado para gestao da empresa; por isso ele nao vincula o usuario diretamente a unidade, evitando multiplos tenants no primeiro login.
- Se a base nao tiver grupo `empresa` ou `empresas`, o usuario ainda sera criado e vinculado ao contrato, mas sera preciso ajustar o grupo de acesso depois.
