import { Controller, Get, Query, UseGuards, Request } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; import { RolesGuard } from '../../common/guards/roles.guard'; import { Roles } from '../../common/decorators/roles.decorator'; import { ContractsGlobalService, ContractStatus } from './contracts-global.service'; interface AuthReq extends Request { user: { id: string; role: string } } interface ContractsQuery { page?: string; limit?: string; departmentId?: string; perioada?: string; status?: ContractStatus; search?: string; } @Controller('contracts') @UseGuards(AuthGuard('jwt'), RolesGuard) export class ContractsGlobalController { constructor(private readonly svc: ContractsGlobalService) {} @Get() @Roles('hr_admin', 'hr_specialist') findAll(@Query() q: ContractsQuery, @Request() req: AuthReq) { return this.svc.findAll( { page: q.page ? Number(q.page) : 1, limit: q.limit ? Number(q.limit) : 50, departmentId: q.departmentId, perioada: q.perioada, status: q.status, search: q.search, }, req.user.id, req.user.role, ); } }