import { Controller, Get, Query, Req } from '@nestjs/common';
import type { Request } from 'express';

import { UserRole } from '../../generated/prisma/enums';
import { Roles } from '../../common/auth/roles.decorator';
import { ListActivityLogsQueryDto } from './dto/list-activity-logs-query.dto';
import { ActivityLogService } from './activity-log.service';
import { AuthRequestUser } from '../auth/interfaces/auth-request-user.interface';

@Controller('activity-logs')
@Roles(UserRole.super_admin)
export class ActivityLogController {
  constructor(private readonly activityLogService: ActivityLogService) {}

  @Get()
  listActivityLogs(@Query() query: ListActivityLogsQueryDto) {
    return this.activityLogService.listActivityLogs(query);
  }

  @Get('mine')
  @Roles(UserRole.seo_manager)
  listMyActivityLogs(
    @Query() query: ListActivityLogsQueryDto,
    @Req() request: Request & { user: AuthRequestUser },
  ) {
    return this.activityLogService.listActivityLogs(query, request.user.id);
  }
}
