import { Controller, Get, Delete, Patch, Param, Query, Body, UseGuards } from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { MessagesService } from './messages.service';
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';

@ApiTags('messages')
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Controller('groups/:groupId/messages')
export class MessagesController {
  constructor(private messages: MessagesService) {}

  @Get()
  getMessages(@Param('groupId') groupId: string, @Query('page') page?: number, @Query('limit') limit?: number) {
    return this.messages.getMessages(groupId, page, limit);
  }

  @Patch(':id/pin')
  pin(@Param('id') id: string, @Body('pinned') pinned: boolean) {
    return this.messages.pinMessage(id, pinned);
  }

  @Delete(':id')
  delete(@Param('id') id: string) {
    return this.messages.delete(id);
  }
}
