One Hat Cyber Team
Your IP :
216.73.216.36
Server IP :
162.240.179.46
Server :
Linux vps-14493116.nutrivittasaude.com.br 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
Server Software :
Apache
PHP Version :
8.2.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
lifeprimeti
/
meta.lifeprimeti.com.br
/
api
/
View File Name :
datas_disponiveis.php
<?php require_once __DIR__ . '/../config/database.php'; header('Content-Type: application/json; charset=utf-8'); $profissionalId = (int)($_GET['profissional_id'] ?? 0); $empresaId = (int)($_GET['empresa_id'] ?? 0); if (!$profissionalId || !$empresaId) { echo json_encode([]); exit; } $horariosProf = $pdo->prepare("SELECT dia_semana FROM horarios_profissionais WHERE profissional_id = ?"); $horariosProf->execute([$profissionalId]); $diasTrabalho = $horariosProf->fetchAll(PDO::FETCH_COLUMN); if (empty($diasTrabalho)) { echo json_encode([]); exit; } $bloqueios = $pdo->prepare("SELECT data FROM bloqueio_dias WHERE (empresa_id = ? OR profissional_id = ?) AND data >= CURDATE()"); $bloqueios->execute([$empresaId, $profissionalId]); $diasBloqueados = $bloqueios->fetchAll(PDO::FETCH_COLUMN); $agendamentos = $pdo->prepare("SELECT data, COUNT(*) as total FROM agendamentos WHERE profissional_id = ? AND data >= CURDATE() AND status NOT IN ('cancelado') GROUP BY data"); $agendamentos->execute([$profissionalId]); $diasAgendados = []; while ($row = $agendamentos->fetch()) { $diasAgendados[$row['data']] = (int)$row['total']; } $datas = []; $hoje = new DateTime(); $hoje->modify('+1 day'); $fim = new DateTime(); $fim->modify('+60 days'); while ($hoje <= $fim) { $diaSemana = (int)$hoje->format('w'); $dataStr = $hoje->format('Y-m-d'); if (in_array($diaSemana, $diasTrabalho) && !in_array($dataStr, $diasBloqueados)) { $datas[] = [ 'data' => $dataStr, 'dia_semana' => $diaSemana, 'agendamentos' => $diasAgendados[$dataStr] ?? 0, ]; } $hoje->modify('+1 day'); } echo json_encode($datas);