Background

Preencha todos os campos abaixo para criar o seu cadastro.

Todos os campos são obrigatórios. Nenhuma dessas informações serão exibidas publicamente.

 

 

 

 
Precisa de ajuda?
  • Bem vindo ao modo "Stories"! Aqui você pode ver as últimas novidades das nossas garotas!
A barra de progresso indica a duração que cada vídeo ainda tem.
Alice Belahor 2
@goiania-alice-belahor2 Alguns minutos atrás A
31173Alice Belahor 2
31173Alice Belahor 2 2 min atrás
31173Alice Belahor 2
839
35
31173Alice Belahor 2
31173Alice Belahor 2 2 min atrás
Karen Hot
@goiania-karen-hot Alguns minutos atrás A
17976Karen Hot
17976Karen Hot 2 min atrás
17976Karen Hot
839
35
17976Karen Hot
17976Karen Hot 2 min atrás
Safira Nogueira
@safira-nogueira-goiania Alguns minutos atrás A
38005Safira Nogueira
38005Safira Nogueira 2 min atrás
38005Safira Nogueira
839
35
38005Safira Nogueira
38005Safira Nogueira 2 min atrás
Kamila Montez
@kamila-montez-goiania Alguns minutos atrás A
37060Kamila Montez
37060Kamila Montez 2 min atrás
37060Kamila Montez
839
35
37060Kamila Montez
37060Kamila Montez 2 min atrás
Elisa Duarte
@goiania-elisa-duarte Alguns minutos atrás A
4772Elisa Duarte
4772Elisa Duarte 2 min atrás
4772Elisa Duarte
839
35
4772Elisa Duarte
4772Elisa Duarte 2 min atrás
Brenda Ford
@goiania-brenda-ford Alguns minutos atrás A
31219Brenda Ford
31219Brenda Ford 2 min atrás
31219Brenda Ford
839
35
31219Brenda Ford
31219Brenda Ford 2 min atrás
Bia
@goiania-bia Alguns minutos atrás A
31458Bia
31458Bia 2 min atrás
31458Bia
839
35
31458Bia
31458Bia 2 min atrás
Nay Rodrigues
@goiania-nay-rodrigues Alguns minutos atrás A
35852Nay Rodrigues
35852Nay Rodrigues 2 min atrás
35852Nay Rodrigues
839
35
35852Nay Rodrigues
35852Nay Rodrigues 2 min atrás
Lunna
@lunna-goiania Alguns minutos atrás A
38505Lunna
38505Lunna 2 min atrás
38505Lunna
839
35
38505Lunna
38505Lunna 2 min atrás
Rafaella
@goiania-rafaella Alguns minutos atrás A
31254Rafaella
31254Rafaella 2 min atrás
31254Rafaella
839
35
31254Rafaella
31254Rafaella 2 min atrás
Julia
@julia-goiania Alguns minutos atrás A
38960Julia
38960Julia 2 min atrás
38960Julia
839
35
38960Julia
38960Julia 2 min atrás
Leticia
@goiania-leticia-2 Alguns minutos atrás A
4101Leticia
4101Leticia 2 min atrás
4101Leticia
839
35
4101Leticia
4101Leticia 2 min atrás
/* Authentication Modal Styles */ .tik-modais-auth-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 1001; opacity: 0; visibility: hidden; transition: all 0.3s ease; } .tik-modais-auth-overlay.active { opacity: 1; visibility: visible; } .tik-modais-auth-modal { background: white; border-radius: 16px; width: 90%; max-width: 400px; max-height: 90vh; overflow-y: auto; transform: scale(0.9) translateY(20px); transition: all 0.3s ease; } .tik-modais-auth-overlay.active .tik-modais-auth-modal { transform: scale(1) translateY(0); } .tik-modais-auth-form { display: none; } .tik-modais-auth-form.active { display: block; } .tik-modais-auth-header { padding: 24px 24px 16px; border-bottom: 1px solid #e1e1e1; display: flex; align-items: center; justify-content: space-between; position: relative; } .tik-modais-auth-back { background: none; border: none; cursor: pointer; padding: 4px; position: absolute; left: 24px; } .tik-modais-auth-back svg { width: 24px; height: 24px; fill: #666; } .tik-modais-auth-title { font-size: 20px; font-weight: bold; color: #000; flex: 1; text-align: center; } .tik-modais-auth-close { background: none; border: none; cursor: pointer; padding: 4px; } .tik-modais-auth-close svg { width: 24px; height: 24px; fill: #666; } .tik-modais-auth-content { padding: 24px; } .tik-modais-auth-description { margin-bottom: 24px; text-align: center; } .tik-modais-auth-description p { color: #666; font-size: 14px; line-height: 1.4; } .tik-modais-auth-form-group { margin-bottom: 16px; } .tik-modais-auth-form-label { display: block; font-size: 14px; font-weight: 600; color: #333; margin-bottom: 8px; } .tik-modais-auth-form-input { width: 100%; padding: 12px 16px; border: 2px solid #e1e1e1; border-radius: 8px; font-size: 16px; transition: border-color 0.2s; border-radius: 10px; background: #f2f2f2; } .tik-modais-auth-form-input:focus { outline: none; border-color: #006dd9; } .tik-modais-auth-form-input::placeholder { color: #999; } .tik-modais-auth-forgot { text-align: right; margin-bottom: 24px; } .tik-modais-auth-forgot a { color: #006dd9; text-decoration: none; font-size: 14px; font-weight: 500; } .tik-modais-auth-forgot a:hover { text-decoration: underline; } .tik-modais-auth-btn { width: 100%; background: #006dd9; color: white; border: none; border-radius: 8px; padding: 16px; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.2s; margin-bottom: 16px; } .tik-modais-auth-btn:hover { background: #006dd9; } .tik-modais-auth-btn:disabled { background: #ccc; cursor: not-allowed; } .tik-modais-auth-btn-secondary { width: 100%; background: white; color: #333; border: 2px solid #e1e1e1; border-radius: 8px; padding: 16px; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.2s; display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 16px; } .tik-modais-auth-btn-secondary:hover { border-color: #ccc; background: #f9f9f9; } .tik-modais-auth-divider { text-align: center; margin: 20px 0; position: relative; } .tik-modais-auth-divider::before { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: #e1e1e1; } .tik-modais-auth-divider span { background: white; padding: 0 16px; color: #666; font-size: 14px; } .tik-modais-auth-footer { text-align: center; margin-top: 24px; } .tik-modais-auth-footer span { color: #666; font-size: 14px; } .tik-modais-auth-footer a { color: #006dd9; text-decoration: none; font-weight: 600; } .tik-modais-auth-footer a:hover { text-decoration: underline; } .tik-modais-auth-checkbox-group { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 24px; } .tik-modais-auth-checkbox { width: 20px; height: 20px; border: 2px solid #e1e1e1; border-radius: 4px; cursor: pointer; position: relative; transition: all 0.2s; flex-shrink: 0; margin-top: 2px; } .tik-modais-auth-checkbox.checked { background: #006dd9; border-color: #006dd9; } .tik-modais-auth-checkbox.checked::after { content: '✓'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: white; font-size: 12px; font-weight: bold; } .tik-modais-auth-checkbox-label { font-size: 14px; color: #666; line-height: 1.4; cursor: pointer; } .tik-modais-auth-checkbox-label a { color: #006dd9; text-decoration: none; } .tik-modais-auth-checkbox-label a:hover { text-decoration: underline; } /* Responsive */ @media (max-width: 768px) { .tik-pacotes-header { padding: 12px 16px; } .tik-pacotes-search-container { margin: 0 16px; } .tik-pacotes-container { padding: 20px 16px; } .tik-pacotes-main-content { padding: 20px; } .tik-pacotes-grid { grid-template-columns: 1fr; gap: 12px; } .tik-modais-compra-modal { width: 95%; margin: 20px; } .tik-modais-compra-form-row { flex-direction: column; gap: 16px; } } .checkbox-tipo-de-perfil { max-width: 400px; width: 100%; } .checkbox-tipo-de-perfil .option { background: white; border: 2px solid #e0e0e0; border-radius: 12px; margin-bottom: 12px; padding: 20px; cursor: pointer; transition: all 0.2s ease; position: relative; display: flex; align-items: center; gap: 16px; } .checkbox-tipo-de-perfil .option.selected { border-color: #006dd9; background: linear-gradient(135deg, #fef7ff 0%, #fdf2ff 100%); } .checkbox-tipo-de-perfil .option:hover { border-color: #006dd9; box-shadow: 0 2px 8px rgba(200, 74, 176, 0.1); } .checkbox-tipo-de-perfil .icon { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; } .checkbox-tipo-de-perfil .option:not(.selected) .icon { background-color: #f0f0f0; color: #666; } .checkbox-tipo-de-perfil .option.selected .icon { background-color: #006dd9; color: white; } .checkbox-tipo-de-perfil .content { flex: 1; } .checkbox-tipo-de-perfil .title { font-size: 16px; font-weight: 600; color: #333; margin: 0 0 4px 0; line-height: 1.3; } .checkbox-tipo-de-perfil .description { font-size: 14px; color: #666; margin: 0; line-height: 1.4; } .checkbox-tipo-de-perfil .radio-indicator { width: 20px; height: 20px; border: 2px solid #e0e0e0; border-radius: 50%; position: relative; flex-shrink: 0; transition: all 0.2s ease; } .checkbox-tipo-de-perfil .option.selected .radio-indicator { border-color: #006dd9; } .checkbox-tipo-de-perfil .option.selected .radio-indicator::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 8px; height: 8px; background-color: #006dd9; border-radius: 50%; } .checkbox-tipo-de-perfil .continue-button { width: 100%; background-color: #006dd9; color: white; border: none; border-radius: 8px; padding: 16px; font-size: 16px; font-weight: 600; cursor: pointer; margin-top: 20px; transition: background-color 0.2s ease; } .checkbox-tipo-de-perfil .continue-button:hover { background-color: #222; } .checkbox-tipo-de-perfil .continue-button:active { transform: translateY(1px); }
Entrar
Cadastrar
👱‍♀️

Sou modelo acompanhante

Divulgue e valorize seus serviços em um Portfólio Premium.

😎

Quero ser cliente

Acesse um universo de acompanhantes premium e experiências exclusivas.

Recuperar Senha

Digite seu e-mail e enviaremos uma nova senha no seu e-mail.

// Funções globais para os Modais de Termos function abrirModalTermos() { document.getElementById('modal-termos-overlay').classList.add('active'); } function fecharModalTermos() { document.getElementById('modal-termos-overlay').classList.remove('active'); } // Variável global para o SignaturePad let signaturePad = null; function fecharModalResumo() { document.getElementById('modal-resumo-overlay').classList.remove('active'); } function limparAssinatura() { if(signaturePad) signaturePad.clear(); } document.addEventListener('DOMContentLoaded', function() { const form = document.querySelector('.form-pre-cadastro'); const inputNome = document.getElementById('nome'); const inputCpf = document.getElementById('cpf'); const inputNascimento = document.getElementById('nascimento'); const inputWhatsapp = document.getElementById('whatsapp'); const inputEmail = document.getElementById('emailL'); const senhaX = document.getElementById('senhaX'); const senhaY = document.getElementById('senhaY'); const checkboxTermos = document.getElementById('aceite-termos'); // Inicializar SignaturePad const canvas = document.getElementById('signature-pad'); // Ajuste de DPI para o Canvas não ficar borrado function resizeCanvas() { const ratio = Math.max(window.devicePixelRatio || 1, 1); canvas.width = canvas.offsetWidth * ratio; canvas.height = canvas.offsetHeight * ratio; canvas.getContext("2d").scale(ratio, ratio); if(signaturePad) signaturePad.clear(); } // Inicializa signaturePad = new SignaturePad(canvas, { backgroundColor: 'rgb(255, 255, 255)', penColor: 'rgb(0, 0, 0)' }); window.addEventListener("resize", resizeCanvas); // URL do Ajax do WordPress const wpAjaxUrl = 'https://gatasgyn.com/wp-admin/admin-ajax.php'; // --- MÁSCARAS --- inputCpf.addEventListener('input', function(e) { let v = e.target.value.replace(/\D/g, ""); if (v.length > 11) v = v.slice(0, 11); v = v.replace(/(\d{3})(\d)/, "$1.$2"); v = v.replace(/(\d{3})(\d)/, "$1.$2"); v = v.replace(/(\d{3})(\d{1,2})$/, "$1-$2"); e.target.value = v; }); inputNascimento.addEventListener('input', function(e) { let v = e.target.value.replace(/\D/g, ""); if (v.length > 8) v = v.slice(0, 8); v = v.replace(/(\d{2})(\d)/, "$1/$2"); v = v.replace(/(\d{2})(\d)/, "$1/$2"); e.target.value = v; }); inputWhatsapp.addEventListener('input', function(e) { let v = e.target.value.replace(/\D/g, ""); if (v.length > 11) v = v.slice(0, 11); v = v.replace(/^(\d{2})(\d)/g, "($1) $2"); v = v.replace(/(\d)(\d{4})$/, "$1-$2"); e.target.value = v; }); // --- VALIDAÇÃO INICIAL --- form.addEventListener('submit', async function(e) { e.preventDefault(); const btnSubmit = document.getElementById('btn-pre-cadastro'); const textoOriginal = btnSubmit.innerText; btnSubmit.innerText = "Verificando dados..."; btnSubmit.disabled = true; let erros = []; // 1. Validação de Idade if (!validarIdade(inputNascimento.value)) { erros.push("É necessário ter pelo menos 18 anos para se cadastrar."); } // 2. Validação de Senhas if (senhaX.value !== senhaY.value) { erros.push("As senhas digitadas não coincidem."); } if (senhaX.value.length < 6) { erros.push("A senha deve ter pelo menos 6 caracteres."); } // 3. Validação Captcha const captchaResponse = form.querySelector('[name="cf-turnstile-response"]'); if (!captchaResponse || captchaResponse.value === "") { erros.push("Por favor, confirme que você não é um robô (Captcha)."); } // 4. Validação Whatsapp if(inputWhatsapp.value.length < 15) { erros.push("Por favor, preencha um número de WhatsApp válido."); } // 5. Validação Termos (NOVO) if(!checkboxTermos.checked) { erros.push("Você precisa aceitar os termos de uso para continuar."); } // 6. Verificação de E-mail via AJAX if (inputEmail.value.includes('@') && erros.length === 0) { try { const emailDisponivel = await verificarEmailServidor(inputEmail.value); if (!emailDisponivel) { erros.push("Este e-mail já está cadastrado em nosso sistema."); } } catch (error) { console.error("Erro na verificação de e-mail", error); } } // Restaura botão btnSubmit.innerText = textoOriginal; btnSubmit.disabled = false; // --- DECISÃO --- if (erros.length > 0) { exibirModal("Atenção", erros.join("
")); } else { // SUCESSO NA VALIDAÇÃO PRELIMINAR -> ABRIR MODAL DE RESUMO abrirModalResumo(); } }); // Função para Preencher e Abrir o Modal de Resumo function abrirModalResumo() { // Preencher dados document.getElementById('resumo-nome').innerText = inputNome.value; document.getElementById('resumo-cpf').innerText = inputCpf.value; document.getElementById('resumo-nasc').innerText = inputNascimento.value; document.getElementById('resumo-email').innerText = inputEmail.value; document.getElementById('resumo-zap').innerText = inputWhatsapp.value; // Abrir Modal document.getElementById('modal-resumo-overlay').classList.add('active'); // Importante: Redimensionar o canvas após o modal ficar visível setTimeout(resizeCanvas, 100); } // --- SUBMISSÃO FINAL (BOTÃO DO MODAL DE RESUMO) --- document.getElementById('btn-finalizar-cadastro').addEventListener('click', function() { // Verifica se assinou if (signaturePad.isEmpty()) { alert("Por favor, faça sua assinatura no quadro branco."); return; } // Se quiser pegar a imagem da assinatura no futuro: // const signatureData = signaturePad.toDataURL(); const btnFinalizar = this; btnFinalizar.innerText = "Processando..."; btnFinalizar.disabled = true; // Prepara envio Ajax const formData = new FormData(); formData.append('action', 'harmonics_processar_cadastro'); formData.append('nome', inputNome.value); formData.append('cpf', inputCpf.value); formData.append('nascimento', inputNascimento.value); formData.append('email', inputEmail.value); formData.append('whatsapp', inputWhatsapp.value); formData.append('senha', senhaX.value); // formData.append('assinatura', signaturePad.toDataURL()); // Se decidir salvar depois fetch(wpAjaxUrl, { method: 'POST', body: formData }) .then(response => response.json()) .then(data => { // Fecha modal de resumo fecharModalResumo(); if(data.success) { exibirModal("Sucesso!", "O pré-cadastro foi feito com sucesso.

Após uma avaliação criteriosa da nossa equipe, retornaremos o contato em até 48 horas úteis."); form.reset(); limparAssinatura(); checkboxTermos.checked = false; } else { exibirModal("Erro", data.data.message || "Erro ao processar cadastro."); } btnFinalizar.innerText = "Salvar e concluir pré cadastro"; btnFinalizar.disabled = false; }) .catch(err => { console.error(err); fecharModalResumo(); exibirModal("Erro", "Ocorreu um erro de conexão. Tente novamente."); btnFinalizar.innerText = "Salvar e concluir pré cadastro"; btnFinalizar.disabled = false; }); }); // --- FUNÇÕES AUXILIARES --- async function verificarEmailServidor(email) { const formData = new FormData(); formData.append('action', 'verificar_email_existente'); formData.append('email', email); const response = await fetch(wpAjaxUrl, { method: 'POST', body: formData }); const data = await response.json(); return data.success; } function validarIdade(dataString) { if(dataString.length !== 10) return false; const partes = dataString.split('/'); const dia = parseInt(partes[0], 10); const mes = parseInt(partes[1], 10) - 1; const ano = parseInt(partes[2], 10); const dataNasc = new Date(ano, mes, dia); const dataAtual = new Date(); let idade = dataAtual.getFullYear() - dataNasc.getFullYear(); const mesAtual = dataAtual.getMonth(); if (mesAtual < mes || (mesAtual === mes && dataAtual.getDate() < dia)) idade--; return idade >= 18; } function exibirModal(titulo, mensagem) { // Remove modal anterior se existir (apenas o de alerta, não os estruturais) // Nota: Mudei a classe para evitar conflito com os novos modais fixos const modalsAlert = document.querySelectorAll('.custom-modal-overlay.alert-modal'); modalsAlert.forEach(m => m.remove()); const htmlModal = `
${titulo}
${mensagem}
`; document.body.insertAdjacentHTML('beforeend', htmlModal); } });