task-managment / src / server / routers / floors.ts
floors.ts
Raw
import {
  router,
  publicProcedure,
  isAdminMiddleware,
} from "../trpc";
import { z } from "zod";
import { projectServiceFacade } from "../project/application/facade";
import { projectFloorSchema } from "@/lib/schemas/projectFloorSchema";
import { v4 as uuidv4 } from 'uuid';

export const floorRouter = router({
  createProjectFloor: publicProcedure
    .use(isAdminMiddleware)
    .input(
     projectFloorSchema.extend({
      id:z.string().default(()=>uuidv4())
     })
    )
    .mutation(async ({ input, ctx }) => {
      const userId={value:ctx.user.userId}
     return await projectServiceFacade.createProjectFloor(input,userId)
    }),

  deleteProjectFloor: publicProcedure
    .use(isAdminMiddleware)
    .input(
      z.object({
        id: z.string().uuid({ message: "ID debe ser un UUID válido" }),
      })
    )
    .mutation(async ({ input, ctx }) => {
      const { id } = input;
      const floorId={value:id}
      const userId={value:ctx.user.userId}
      return await projectServiceFacade.deleteProjectFloor(floorId,userId)
    }),
});