// Auto-generated Logistic routes import type { FastifyInstance } from "fastify"; import { authenticate } from "../middleware/auth.js"; import { LogisticService } from "../services/logistic.js"; import type { CreateLogisticInput, UpdateLogisticInput } from "../types/index.js"; const service = new LogisticService(); export async function logisticsRoutes(app: FastifyInstance): Promise { // All routes require authentication app.addHook("onRequest", authenticate); // GET /api/logistics — list app.get("/", async (request, reply) => { const items = service.list(); return { data: items }; }); // GET /api/logistics/:id — get by id app.get<{ Params: { id: string } }>("/:id", async (request, reply) => { const item = service.getById(request.params.id); if (!item) { return reply.status(404).send({ error: "Not Found", message: "Logistic not found", statusCode: 404 }); } return { data: item }; }); // POST /api/logistics — create app.post<{ Body: CreateLogisticInput }>("/", async (request, reply) => { const item = service.create(request.body); return reply.status(201).send({ data: item }); }); // PUT /api/logistics/:id — update app.put<{ Params: { id: string }; Body: UpdateLogisticInput }>("/:id", async (request, reply) => { const item = service.update(request.params.id, request.body); if (!item) { return reply.status(404).send({ error: "Not Found", message: "Logistic not found", statusCode: 404 }); } return { data: item }; }); // DELETE /api/logistics/:id — delete app.delete<{ Params: { id: string } }>("/:id", async (request, reply) => { const deleted = service.delete(request.params.id); if (!deleted) { return reply.status(404).send({ error: "Not Found", message: "Logistic not found", statusCode: 404 }); } return reply.status(204).send(); }); }