import { Controller, Get, Patch, Param, UseGuards, Request } from '@nestjs/common';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import { NotificationsService } from './notifications.service';
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';

@ApiTags('notifications')
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Controller({ path: 'notifications', version: '1' })
export class NotificationsController {
  constructor(private readonly service: NotificationsService) {}

  @Get()
  @ApiOperation({ summary: 'Notificações não lidas' })
  getUnread(@Request() req: any) {
    return this.service.getUnread(req.user.sub);
  }

  @Patch(':id/read')
  @ApiOperation({ summary: 'Marcar como lida' })
  markRead(@Param('id') id: string, @Request() req: any) {
    return this.service.markRead(id, req.user.sub);
  }

  @Patch('read-all')
  @ApiOperation({ summary: 'Marcar todas como lidas' })
  markAllRead(@Request() req: any) {
    return this.service.markAllRead(req.user.sub);
  }
}
