diff --git a/src/server/routes/atendimentos.ts b/src/server/routes/atendimentos.ts index 1b92126..c591b7b 100644 --- a/src/server/routes/atendimentos.ts +++ b/src/server/routes/atendimentos.ts @@ -1,5 +1,6 @@ import { Router } from "express"; import multer from "multer"; +import { startOfDay, endOfDay, startOfWeek, endOfWeek, parseISO, addDays } from 'date-fns'; import { authMiddleware } from "../../middleware/auth"; import { NextCloudService } from "../../services/nextcloud"; @@ -10,7 +11,47 @@ const upload = multer({ storage: multer.memoryStorage() }); router.use(authMiddleware); -// ...existing routes... +// Nova rota para listar agendamentos +router.get("/agendamentos", async (req, res) => { + try { + const { data } = req.query; + let dateFilter: any = {}; + + if (data) { + // Se uma data especĂ­fica foi fornecida, retorna os agendamentos da semana + const parsedDate = parseISO(data as string); + const weekStart = startOfWeek(parsedDate); + const weekEnd = endOfWeek(parsedDate); + + dateFilter = { + data: { + gte: weekStart, + lte: weekEnd, + }, + }; + } + + const agendamentos = await prisma.agendamento.findMany({ + where: dateFilter, + include: { + cliente: { + select: { + id: true, + nome: true, + }, + }, + }, + orderBy: { + data: 'asc', + }, + }); + + res.json(agendamentos); + } catch (error) { + console.error("Erro ao listar agendamentos:", error); + res.status(500).json({ error: "Erro ao listar agendamentos" }); + } +}); // Rota para atualizar atendimento com anexos router.patch("/:id", async (req, res) => {