import { Body, Controller, Delete, Get, Param, ParseIntPipe, Patch, Post } from "@nestjs/common"; import { ShiftCodesService } from "../services/shift-codes.service"; import { CreateShiftCodesDto } from "../dtos/create-shift-codes.dto"; import { ShiftCodes } from "@prisma/client"; import { UpdateShiftCodesDto } from "../dtos/update-shift-codes.dto"; import { RolesAllowed } from "src/common/decorators/roles.decorators"; import { Roles as RoleEnum } from '.prisma/client'; @Controller() export class ShiftCodesController { constructor(private readonly shiftCodesService: ShiftCodesService) {} @Post() @RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.HR) create(@Body()dto: CreateShiftCodesDto): Promise { return this.shiftCodesService.create(dto); } @Get() @RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.HR) findAll(): Promise { return this.shiftCodesService.findAll(); } @Get(':id') @RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.HR) findOne(@Param('id', ParseIntPipe) id: number): Promise { return this.shiftCodesService.findOne(id); } @Patch(':id') @RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.HR) update(@Param('id', ParseIntPipe) id: number, @Body() dto: UpdateShiftCodesDto): Promise { return this.shiftCodesService.update(id,dto); } @Delete(':id') @RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.HR) remove(@Param('id', ParseIntPipe)id: number): Promise { return this.shiftCodesService.remove(id); } }