import { Controller, Get, Query, Request, Res, UseGuards } from '@nestjs/common';
import type { Response, Request as ExpressRequest } from 'express';
import { JwtAuthGuard } from '@modules/organization/auth/guards/jwt-auth.guard';
import { SkipTransform } from '@common/decorators/skip-transform.decorator';
import { CitiesService } from '../services/cities.service';

/**
 * v1.2 城市自动补全
 * 路径：GET /meeting-attendance/cities/suggestions
 * 权限：仅登录
 */
@Controller('meeting-attendance/cities')
@SkipTransform()
@UseGuards(JwtAuthGuard)
export class MeetingAttendanceCitiesController {
  constructor(private readonly citiesService: CitiesService) {}

  @Get('suggestions')
  async listSuggestions(
    @Query() query: Record<string, any>,
    @Request() req: ExpressRequest,
    @Res() res: Response,
  ) {
    try {
      const user = req.user as { userId?: string; id?: string } | undefined;
      if (!user?.userId && !user?.id) {
        return res.status(401).json({ error: 'Unauthorized access' });
      }
      const result = await this.citiesService.listCitySuggestions(query);
      return res.status(200).json(result);
    } catch (error) {
      return res.status(500).json({ error: 'Failed to list city suggestions' });
    }
  }
}
