import { Body, Controller, Post } from '@nestjs/common';
import { ApiOperation, ApiTags } from '@nestjs/swagger';
import { Public } from '../../common/decorators/public.decorator';
import { WeixinAibotService } from './weixin-aibot.service';

/**
 * WeixinAibotController — 企微机器人主动推送的「演示触发」端点。
 *
 * ⚠️ DEV/DEMO ONLY:@Public 免鉴权,仅 env `PAC_WX_AIBOT_DEMO_PUSH=1` 时放行。
 *   生产环境**不该**用裸 HTTP 触发群推送 —— 真实触发应是「定时扫描新出现的紧急缺口」
 *   或「事件驱动(新高优 plan 落库)」,而非外部可调端点。上线前移除或换成内部鉴权。
 */
@ApiTags('internal')
@Controller('internal/wx-aibot')
export class WeixinAibotController {
  constructor(private readonly svc: WeixinAibotService) {}

  @Public()
  @Post('push-urgent')
  @ApiOperation({ summary: '[DEV] 主动推一条紧急召回提醒到群(需 PAC_WX_AIBOT_DEMO_PUSH=1)' })
  async pushUrgent(@Body() body: { chatid?: string } | undefined): Promise<unknown> {
    if (process.env.PAC_WX_AIBOT_DEMO_PUSH !== '1') {
      return { ok: false, msg: 'demo push 未启用(设 PAC_WX_AIBOT_DEMO_PUSH=1 后重启)' };
    }
    return this.svc.pushUrgentAlert(body?.chatid);
  }
}
