// import { Body, Controller, Get, Param, Put, } from "@nestjs/common"; // import { Roles as RoleEnum } from '.prisma/client'; // import { ApiBearerAuth, ApiTags } from "@nestjs/swagger"; // import { RolesAllowed } from "src/common/decorators/roles.decorators"; // import { ExpensesCommandService } from "../services/expenses-command.service"; // import { UpsertExpenseDto } from "../dtos/upsert-expense.dto"; // import { UpsertExpenseResult } from "../types and interfaces/expenses.types.interfaces"; // import { DayExpensesDto } from "src/modules/timesheets/~misc_deprecated-files/timesheet-period.dto"; // import { ExpensesQueryService } from "../services/expenses-query.service"; // @ApiTags('Expenses') // @ApiBearerAuth('access-token') // // @UseGuards() // @Controller('Expenses') // export class ExpensesController { // constructor( // private readonly query: ExpensesQueryService, // private readonly command: ExpensesCommandService, // ) {} // @Put('upsert/:email/:date') // async upsert_by_date( // @Param('email') email: string, // @Param('date') date: string, // @Body() dto: UpsertExpenseDto, // ): Promise { // return this.command.upsertExpensesByDate(email, date, dto); // } // @Get('list/:email/:year/:period_no') // async findExpenseListByPayPeriodAndEmail( // @Param('email') email:string, // @Param('year') year: number, // @Param('period_no') period_no: number, // ): Promise { // return this.query.findExpenseListByPayPeriodAndEmail(email, year, period_no); // } // //_____________________________________________________________________________________________ // // Deprecated or unused methods // //_____________________________________________________________________________________________ // // @Post() // // //@RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.EMPLOYEE, RoleEnum.HR, RoleEnum.SUPERVISOR) // // @ApiOperation({ summary: 'Create expense' }) // // @ApiResponse({ status: 201, description: 'Expense created',type: CreateExpenseDto }) // // @ApiResponse({ status: 400, description: 'Incomplete task or invalid data' }) // // create(@Body() dto: CreateExpenseDto): Promise { // // return this.query.create(dto); // // } // // @Get() // // //@RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.EMPLOYEE, RoleEnum.HR, RoleEnum.SUPERVISOR) // // @ApiOperation({ summary: 'Find all expenses' }) // // @ApiResponse({ status: 201, description: 'List of expenses found',type: CreateExpenseDto, isArray: true }) // // @ApiResponse({ status: 400, description: 'List of expenses not found' }) // // @UsePipes(new ValidationPipe({ transform: true, whitelist: true })) // // findAll(@Query() filters: SearchExpensesDto): Promise { // // return this.query.findAll(filters); // // } // // @Get(':id') // // //@RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.EMPLOYEE, RoleEnum.HR, RoleEnum.SUPERVISOR) // // @ApiOperation({ summary: 'Find expense' }) // // @ApiResponse({ status: 201, description: 'Expense found',type: CreateExpenseDto }) // // @ApiResponse({ status: 400, description: 'Expense not found' }) // // findOne(@Param('id', ParseIntPipe) id: number): Promise { // // return this.query.findOne(id); // // } // // @Patch(':id') // // //@RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.EMPLOYEE, RoleEnum.HR, RoleEnum.SUPERVISOR) // // @ApiOperation({ summary: 'Expense shift' }) // // @ApiResponse({ status: 201, description: 'Expense updated',type: CreateExpenseDto }) // // @ApiResponse({ status: 400, description: 'Expense not found' }) // // update(@Param('id', ParseIntPipe) id: number, @Body() dto: UpdateExpenseDto) { // // return this.query.update(id,dto); // // } // // @Delete(':id') // // //@RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.EMPLOYEE, RoleEnum.HR, RoleEnum.SUPERVISOR) // // @ApiOperation({ summary: 'Delete expense' }) // // @ApiResponse({ status: 201, description: 'Expense deleted',type: CreateExpenseDto }) // // @ApiResponse({ status: 400, description: 'Expense not found' }) // // remove(@Param('id', ParseIntPipe) id: number): Promise { // // return this.query.remove(id); // // } // // @Patch('approval/:id') // // //@RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.HR, RoleEnum.SUPERVISOR) // // async approve(@Param('id', ParseIntPipe) id: number, @Body('is_approved', ParseBoolPipe) isApproved: boolean) { // // return this.command.updateApproval(id, isApproved); // // } // }