import {
  Controller,
  Get,
  Put,
  Body,
  Param,
  UseGuards,
} from '@nestjs/common';
import { AIConfigService } from './config.service';
import { UpdateConfigDto } from '../dto';
import { PermissionsGuard } from '@modules/organization/auth/guards/permissions.guard';
import { RequirePermissions } from '@common/decorators/permissions.decorator';
import { Auditable, Sensitive } from '@core/observability/audit/decorators/auditable.decorator';

@Controller('ai-assistant/config')
export class AIConfigController {
  constructor(private readonly configService: AIConfigService) {}

  /**
   * 获取配置列表
   */
  @Get()

  @RequirePermissions('ai:config:manage')
  async findAll() {
    return this.configService.findAll();
  }

  /**
   * 更新配置
   */
  @Put(':key')
  @Auditable()
  @Sensitive()

  @RequirePermissions('ai:config:manage')
  async update(
    @Param('key') key: string,
    @Body() dto: UpdateConfigDto,
  ) {
    return this.configService.update(key, dto);
  }
}
