sistema/painel/paginas/agendamentos
padrão: AJAX → HTML/texto
WhatsApp: lembretes/confirmar/cancelar
Este documento foi montado a partir do código real do módulo agendamentos. A ideia é o próximo dev bater o olho e entender:
onde mexer, quais arquivos são chamados, quais tabelas do banco são afetadas e quais strings/contratos o front espera.
agendamentos e “trava” horários em horarios_agd.intervalo do profissional e na escala do dia (dias).horarios_agd), horários do passado (se data = hoje) e datas bloqueadas.receber, movimenta caixas (se pago) e lança comissão em pagar.agendamentos_temp / API).sistema/painel/paginas/
├─ agendamentos.php
└─ agendamentos/
├─ listar.php
├─ inserir.php
├─ excluir.php
├─ listar-horarios.php
├─ listar-servicos.php
└─ inserir-servico.php
agendamentos.php: página “container” (HTML do módulo) + JS (jQuery) chamando os endpoints via AJAX.agendamentos/listar.php: retorna HTML da listagem (tabela) de agendamentos para o profissional selecionado.agendamentos/listar-horarios.php: retorna HTML de horários disponíveis para uma data e um profissional.agendamentos/listar-servicos.php: retorna as <option> dos serviços do profissional (servicos_func).agendamentos/inserir.php: cria o agendamento e registra os “slots” ocupados em horarios_agd.agendamentos/inserir-servico.php: fechamento do atendimento (gera financeiro + comissão + fidelidade + retorno).agendamentos/excluir.php: exclui agendamento e libera horários ocupados.require_once("../../../conexao.php") e includes externos como
../../../../ajax/api-texto.php. Se você mover o módulo de lugar, ajuste os caminhos relativos.
listar.php responde com: Selecione um Funcionário! e encerra.listar-servicos.phplistar-horarios.php (após escolher data)listar.phpagendamentos/inserir.php via POST.agendamentos e cria N registros em horarios_agd (um por intervalo ocupado).Salvo com Sucesso.agendamentos/inserir-servico.php.receber/caixas/pagar, além de atualizar fidelidade e retorno.Salvo com Sucesso.agendamentos/excluir.php passando id.agendamentos e limpa os slots em horarios_agd.../../../../ajax/agendar-delete.php usando o valor salvo em agendamentos.hash.Excluído com Sucesso.| Endpoint | Método | Entradas (POST) | Saída |
|---|---|---|---|
agendamentos/listar.php |
POST | funcionario, data |
HTML (tabela/listagem) • erros em texto (Selecione um Funcionário!) |
agendamentos/listar-horarios.php |
POST | funcionario, data |
HTML (rádios/labels) • mensagens como Não temos mais horários disponíveis... |
agendamentos/listar-servicos.php |
POST | funcionario |
HTML (<option>) |
agendamentos/inserir.php |
POST | id, data, horario, cliente, funcionario, servico, obs |
Texto puro: Salvo com Sucesso ou mensagem de validação |
agendamentos/inserir-servico.php |
POST |
id_agd, id_servico, cliente_agd, funcionario_agd,subtotal, valor, comissao, descricao, obs,forma_pgto, data_retorno, cliente, funcionario, id
|
Texto puro: Salvo com Sucesso |
agendamentos/excluir.php |
POST | id |
Texto puro: Excluído com Sucesso |
agendamentos: registro principal (cliente, funcionário, data/hora, serviço, status, hash, observação).horarios_agd: “slots” ocupados (usado para bloquear horários no listar-horarios.php).clientes: dados do cliente + fidelidade/cartões + data de retorno.usuarios: dados do profissional (inclui intervalo e parâmetros usados para agenda).dias: escala do profissional por dia da semana (abre/fecha/intervalo).dias_bloqueio e dias_bloqueio_func: bloqueios globais e por profissional.servicos e servicos_func: catálogo de serviços e vínculo serviço ↔ profissional.formas_pgto: formas de pagamento (usadas no fechamento do atendimento).receber: contas a receber geradas ao concluir serviço.pagar: comissões/contas a pagar (com base no serviço e % definida).caixas: movimentação de caixa (se o atendimento for baixado como pago).agendamentos_temp: suporte a retorno/lembretes (usado no fechamento para próxima visita).horarios_agd (slots presos),
ou bloqueios em dias_bloqueio*. Comece por aí.
dias_bloqueio: retorna Não estaremos funcionando nesta Data!dias_bloqueio_func (para o profissional): retorna mensagem de indisponibilidade.dias).Este Funcionário não trabalha neste Dia!intervalo do profissional (usuarios.intervalo).horarios_agd.inserir.php valida se o horário está disponível.horarios_agd.
Qualquer ação de criar/excluir agendamento deve inserir/remover os slots correspondentes.
inserir.php pode disparar mensagem via ../../../../ajax/api-texto.php.$msg_agendamento.$minutos_aviso > 0, inclui ../../../../ajax/confirmacao.php para agendar lembrete.agendamentos.hash e usado em excluir.php para remover o lembrete com agendar-delete.php.../../../../api/notid.php para notificar dentro do sistema.file_exists().
PDO::prepare() + bindValue().
horarios_agd(data, funcionario, horario).
inserir-servico.php mexe em receber, pagar e caixas.
Recomendação: transação e logs (quem baixou, quando, IP).
dias, usuarios.intervalo, bloqueios (dias_bloqueio*) e slots em horarios_agd.servicos_func e se o serviço está ativo em servicos.api-texto.php.receber, pagar e caixas no fechamento.