diff --git a/backend/app.ts b/backend/app.ts new file mode 100644 index 0000000..a9a5fa1 --- /dev/null +++ b/backend/app.ts @@ -0,0 +1,24 @@ +import express from "express"; +import cors from "cors"; +import { PrismaClient } from "@prisma/client"; +import usuariosRoutes from "./routes/usuarios"; +import clientesRoutes from "./routes/clientes"; +import processosRoutes from "./routes/processos"; +import audienciasRoutes from "./routes/audiencias"; + +const app = express(); +const prisma = new PrismaClient(); + +app.use(cors()); +app.use(express.json()); + +app.use("/api/usuarios", usuariosRoutes); +app.use("/api/clientes", clientesRoutes); +app.use("/api/processos", processosRoutes); +app.use("/api/audiencias", audienciasRoutes); + +app.get("/", (req, res) => { + res.json({ message: "API is running" }); +}); + +export default app; \ No newline at end of file diff --git a/backend/controllers/audienciasController.ts b/backend/controllers/audienciasController.ts new file mode 100644 index 0000000..c85a881 --- /dev/null +++ b/backend/controllers/audienciasController.ts @@ -0,0 +1,20 @@ +import { Request, Response } from "express"; +import prisma from "../prisma/client"; + +// Lista todas as audiências +export async function getAudiencias(req: Request, res: Response) { + try { + const audiencias = await prisma.audiencia.findMany({ + orderBy: { data: "asc" }, + include: { + processo: { + select: { numero: true, nomeContraparte: true } + } + } + }); + res.json(audiencias); + } catch (error) { + console.error("Erro ao buscar audiências:", error); + res.status(500).json({ error: "Erro ao buscar audiências" }); + } +} diff --git a/backend/routes/audiencias.ts b/backend/routes/audiencias.ts new file mode 100644 index 0000000..73ae48a --- /dev/null +++ b/backend/routes/audiencias.ts @@ -0,0 +1,9 @@ +import { Router } from "express"; +import { getAudiencias } from "../controllers/audienciasController"; + +const router = Router(); + +// GET /api/audiencias - Lista todas as audiências +router.get("/", getAudiencias); + +export default router; diff --git a/src/hooks/useAudiencias.ts b/src/hooks/useAudiencias.ts index 884cc8f..119130e 100644 --- a/src/hooks/useAudiencias.ts +++ b/src/hooks/useAudiencias.ts @@ -1,5 +1,6 @@ -import { useMutation, useQueryClient } from "react-query"; +import { useMutation, useQuery, useQueryClient } from "react-query"; import axios from "axios"; +import api from "../services/api"; export function useAudiencias(processoId: string) { const queryClient = useQueryClient(); @@ -49,9 +50,15 @@ export function useAudiencias(processoId: string) { }, ); + const { data: audiencias } = useQuery("audiencias", async () => { + const { data } = await api.get("/audiencias"); + return data; + }); + return { addAudiencia: addAudiencia.mutateAsync, updateAudiencia: updateAudiencia.mutateAsync, deleteAudiencia: deleteAudiencia.mutateAsync, + audiencias, }; } diff --git a/src/server/index.ts b/src/server/index.ts index 5e88dd7..fe4f40d 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -26,6 +26,7 @@ import calculosJudiciaisRoutes from './routes/calculosJudiciais'; import indicesMonetariosRoutes from './routes/indicesMonetarios'; import pensaoAlimenticiaRoutes from './routes/pensaoAlimenticia'; import financeiroPainelRoutes from './routes/financeiroPainel'; // Importar rotas do financeiro painel +import audienciasRoutes from './routes/audiencias'; // Importar rotas de audiências const app = express(); @@ -1479,4 +1480,5 @@ app.use('/api/processos-administrativos', processosAdministrativosRoutes); app.use('/api/calculos', calculosJudiciaisRoutes); app.use('/api/indices', indicesMonetariosRoutes); app.use('/api/pensao-alimenticia', pensaoAlimenticiaRoutes); -app.use('/api/financeiro-painel', financeiroPainelRoutes); // Adicionar uso das rotas do financeiro painel \ No newline at end of file +app.use('/api/financeiro-painel', financeiroPainelRoutes); // Adicionar uso das rotas do financeiro painel +app.use('/api/audiencias', audienciasRoutes); // Adicionar uso das rotas de audiências \ No newline at end of file