import { Controller, Get, Query, UseGuards } from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { Roles } from '../common/decorators/roles.decorator';
import { RolesGuard } from '../common/guards/roles.guard';
import { ADMIN_ROLES } from '../common/constants/roles';
import { AuditLogsService } from './audit-logs.service';

@ApiTags('audit-logs')
@ApiBearerAuth('access-token')
@Controller('audit-logs')
@UseGuards(RolesGuard)
@Roles(...ADMIN_ROLES)
export class AuditLogsController {
  constructor(private readonly audit: AuditLogsService) {}

  @Get()
  list(@Query('cursor') cursor?: string, @Query('limit') limit?: string) {
    return this.audit.list({
      cursor,
      limit: limit ? Number(limit) : undefined,
    });
  }
}
