import { Body, Controller, Get, Post, Query, Param, UseGuards } from '@nestjs/common';
import { AdminService } from './admin.service';
import { JwtAuthGuard } from '../../common/guards/jwt.guard';
import { CurrentUser } from '../../common/decorators/current-user.decorator';
import { Workspace } from '../../common/decorators/workspace.decorator';

@Controller('admin')
@UseGuards(JwtAuthGuard)
export class AdminController {
  constructor(private readonly adminService: AdminService) {}

  @Get('analytics')
  async getAnalytics(@Workspace('id') wsId: string, @CurrentUser('userId') userId: string) {
    return this.adminService.getAnalytics(wsId, userId);
  }

  @Get('audit-logs')
  async getAuditLogs(
    @Workspace('id') wsId: string,
    @CurrentUser('userId') userId: string,
    @Query() query: any,
  ) {
    return this.adminService.getAuditLogs(wsId, userId, query);
  }

  @Get('members')
  async getMembers(
    @Workspace('id') wsId: string,
    @CurrentUser('userId') userId: string,
    @Query() query: any,
  ) {
    return this.adminService.getMembers(wsId, userId, query);
  }

  @Post('emojis')
  async createEmoji(
    @Workspace('id') wsId: string,
    @CurrentUser('userId') userId: string,
    @Body() dto: any,
  ) {
    return this.adminService.createEmoji(wsId, userId, dto);
  }

  @Get('emojis')
  async listEmojis(
    @Workspace('id') wsId: string,
    @CurrentUser('userId') userId: string,
  ) {
    return this.adminService.listEmojis(wsId, userId);
  }
}