fix: ajusta fluxo de cadastro pela rota de /aprovacao-cadastros

This commit is contained in:
NANDO9322 2026-02-09 15:02:41 -03:00
parent cd33c63d9d
commit 1ef8d3f435
2 changed files with 99 additions and 12 deletions

View file

@ -315,6 +315,15 @@ func (s *Service) AdminCreateUser(ctx context.Context, email, senha, role, nome,
Nome: nome,
Email: &email,
FuncaoProfissionalID: funcaoID,
Whatsapp: &telefone,
CpfCnpjTitular: &cpfCnpj,
Cep: &cep,
Endereco: &endereco,
Numero: &numero,
Complemento: &complemento,
Bairro: &bairro,
Cidade: &cidade,
Uf: &estado,
}
// Create the professional

View file

@ -270,7 +270,7 @@ const CreateUserModal: React.FC<CreateUserModalProps> = ({
{formData.role === "EVENT_OWNER" && (
<div className="space-y-4 border-t pt-4 mt-2">
<h4 className="font-medium text-gray-900">Dados do Cliente</h4>
<h4 className="font-medium text-gray-900 border-b pb-1 mb-3">Dados Cadastrais</h4>
<div className="grid grid-cols-2 gap-4">
<Input
label="CPF/CNPJ"
@ -361,6 +361,84 @@ const CreateUserModal: React.FC<CreateUserModalProps> = ({
</div>
)}
{/* Show Address for Professionals too if not EVENT_OWNER (since we handled it above inside the block, wait - logic change needed) */}
{/* Actually, let's make the Address block generic for PHOTOGRAPHER and BUSINESS_OWNER too */}
{(formData.role === "PHOTOGRAPHER" || formData.role === "BUSINESS_OWNER") && (
<div className="space-y-4 border-t pt-4 mt-2">
<h4 className="font-medium text-gray-900 border-b pb-1 mb-3">Dados Profissionais</h4>
<div className="grid grid-cols-2 gap-4">
<Input
label="CPF/CNPJ"
value={formData.cpfCnpj || ''}
onChange={(e) => setFormData({...formData, cpfCnpj: formatCPFCNPJ(e.target.value)})}
placeholder="000.000.000-00"
maxLength={18}
/>
<Input
label="CEP"
value={formData.cep || ''}
onChange={(e) => setFormData({...formData, cep: formatCEP(e.target.value)})}
placeholder="00000-000"
onBlur={(e) => {
const cep = e.target.value.replace(/\D/g, '');
if (cep.length === 8) {
fetch(`https://viacep.com.br/ws/${cep}/json/`)
.then(res => res.json())
.then(data => {
if (!data.erro) {
setFormData(prev => ({
...prev,
endereco: data.logradouro,
bairro: data.bairro,
cidade: data.localidade,
estado: data.uf
}));
}
});
}
}}
/>
</div>
<div className="grid grid-cols-[2fr_1fr] gap-4">
<Input
label="Endereço"
value={formData.endereco || ''}
onChange={(e) => setFormData({...formData, endereco: e.target.value})}
/>
<Input
label="Número"
value={formData.numero || ''}
onChange={(e) => setFormData({...formData, numero: e.target.value})}
/>
</div>
<div className="grid grid-cols-2 gap-4">
<Input
label="Complemento"
value={formData.complemento || ''}
onChange={(e) => setFormData({...formData, complemento: e.target.value})}
/>
<Input
label="Bairro"
value={formData.bairro || ''}
onChange={(e) => setFormData({...formData, bairro: e.target.value})}
/>
</div>
<div className="grid grid-cols-[2fr_1fr] gap-4">
<Input
label="Cidade"
value={formData.cidade || ''}
onChange={(e) => setFormData({...formData, cidade: e.target.value})}
/>
<Input
label="UF"
value={formData.estado || ''}
onChange={(e) => setFormData({...formData, estado: e.target.value})}
maxLength={2}
/>
</div>
</div>
)}
{formData.role === "PHOTOGRAPHER" && (
<div className="space-y-4">
<div>
@ -373,9 +451,9 @@ const CreateUserModal: React.FC<CreateUserModalProps> = ({
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-photum-green focus:border-transparent outline-none transition-all"
>
<option value="">Selecione...</option>
<option value="FOTOGRAFO">Fotógrafo</option>
<option value="CINEGRAFISTA">Cinegrafista</option>
<option value="EDITOR">Editor</option>
<option value="Fotógrafo">Fotógrafo</option>
<option value="Cinegrafista">Cinegrafista</option>
<option value="Editor">Editor</option>
</select>
</div>
</div>
@ -513,14 +591,14 @@ export const UserApproval: React.FC<UserApprovalProps> = ({ onNavigate }) => {
telefone: createFormData.telefone,
professional_type: createFormData.role === "PHOTOGRAPHER" ? createFormData.professional_type : undefined,
empresa_id: createFormData.role === "EVENT_OWNER" ? createFormData.empresa_id : undefined,
cpf_cnpj: createFormData.role === "EVENT_OWNER" ? createFormData.cpfCnpj : undefined,
cep: createFormData.role === "EVENT_OWNER" ? createFormData.cep : undefined,
endereco: createFormData.role === "EVENT_OWNER" ? createFormData.endereco : undefined,
numero: createFormData.role === "EVENT_OWNER" ? createFormData.numero : undefined,
complemento: createFormData.role === "EVENT_OWNER" ? createFormData.complemento : undefined,
bairro: createFormData.role === "EVENT_OWNER" ? createFormData.bairro : undefined,
cidade: createFormData.role === "EVENT_OWNER" ? createFormData.cidade : undefined,
estado: createFormData.role === "EVENT_OWNER" ? createFormData.estado : undefined,
cpf_cnpj: createFormData.cpfCnpj,
cep: createFormData.cep,
endereco: createFormData.endereco,
numero: createFormData.numero,
complemento: createFormData.complemento,
bairro: createFormData.bairro,
cidade: createFormData.cidade,
estado: createFormData.estado,
regiao: createFormData.regiao || undefined
};