import { Router } from "express"; import { IxcIntegradorController } from "../controllers/IxcIntegrador.Controller.js"; import { ixcBiRouter } from "./IxcBi.Rotas.js"; import { requireUser } from "../middleware/RequireUser.js"; import { requireAdmin } from "../middleware/RequireAdmin.js"; import { parseId } from "../middleware/ParseId.js"; import { validate } from "../middleware/Validate.js"; import { ixcClienteBuscaSchema, ixcContratoDetalhesQuerySchema, ixcOsBuscaAvancadaSchema } from "../middleware/schemas/IxcIntegrador.Schema.js"; export const ixcIntegradorRouter = Router(); ixcIntegradorRouter.use(requireUser, requireAdmin); ixcIntegradorRouter.post("/clientes/buscar", validate({ body: ixcClienteBuscaSchema }), IxcIntegradorController.BuscarClientes); ixcIntegradorRouter.get("/clientes/:id", parseId, IxcIntegradorController.ObterCliente); ixcIntegradorRouter.get("/clientes/:id/base", parseId, IxcIntegradorController.ObterClienteBase); ixcIntegradorRouter.get("/clientes/:id/contratos", parseId, IxcIntegradorController.ListarContratosCliente); ixcIntegradorRouter.get("/clientes/:id/possui-contrato-telefonia", parseId, IxcIntegradorController.PossuiContratoTelefonia); ixcIntegradorRouter.get("/contratos/:id", parseId, validate({ query: ixcContratoDetalhesQuerySchema }), IxcIntegradorController.ObterDetalhesContrato); ixcIntegradorRouter.post("/os/buscar", validate({ body: ixcOsBuscaAvancadaSchema }), IxcIntegradorController.BuscarOsAvancado); ixcIntegradorRouter.get("/os/assuntos", IxcIntegradorController.ListarAssuntosOs); ixcIntegradorRouter.get("/os/atendimento/:id", parseId, IxcIntegradorController.ObterAtendimentoOs); ixcIntegradorRouter.get("/os/:id", parseId, IxcIntegradorController.ObterOs); ixcIntegradorRouter.use("/bi", ixcBiRouter); export default ixcIntegradorRouter;