From 350af31eec4e3497372e451d0ce0ae7d3ad63b63 Mon Sep 17 00:00:00 2001 From: Rafael Lopes Date: Wed, 27 May 2026 09:30:36 -0300 Subject: [PATCH] =?UTF-8?q?FEAT:=20Coleta=20do=20cont=C3=BAdo=20de=20IA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/admin/admin-access.controller.ts | 5 +++++ src/modules/admin/admin-access.service.ts | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/modules/admin/admin-access.controller.ts b/src/modules/admin/admin-access.controller.ts index d408e96..82445f7 100644 --- a/src/modules/admin/admin-access.controller.ts +++ b/src/modules/admin/admin-access.controller.ts @@ -30,6 +30,11 @@ export class AdminAccessController { return this.adminAccessService.listAiContents(); } + @Get('ai-contents/:id/file') + getAiContentFile(@Param('id') id: string) { + return this.adminAccessService.getAiContentFile(Number(id)); + } + @Post('ai-contents') createAiContent(@Body() body: { title?: string; diff --git a/src/modules/admin/admin-access.service.ts b/src/modules/admin/admin-access.service.ts index cc4fe2a..78c509c 100644 --- a/src/modules/admin/admin-access.service.ts +++ b/src/modules/admin/admin-access.service.ts @@ -320,6 +320,23 @@ export class AdminAccessService { return result.rows; } + async getAiContentFile(id: number) { + const result = await this.database.query( + ` + SELECT id, title, filename, mimetype, content_base64 + FROM ai_knowledge_contents + WHERE id = $1 + `, + [id], + ); + + if (!result.rows[0]) { + throw new Error('Conteudo de IA nao encontrado'); + } + + return result.rows[0]; + } + async createAiContent(input: AiContentInput) { const title = String(input.title || '').trim(); if (!title) {