UNPKG

skailan-ai

Version:

Servicio de IA y procesamiento de lenguaje natural para Skailan

52 lines 2.37 kB
import { Prompt } from '../../../domain/entities/Prompt'; export class PromptPrismaRepository { prisma; constructor(prisma) { this.prisma = prisma; } async findById(id, organizationId) { const promptData = await this.prisma.prompt.findUnique({ where: { id, organizationId }, }); return promptData ? new Prompt(promptData.id, promptData.organizationId, promptData.name, promptData.description, promptData.template, promptData.type, promptData.createdAt, promptData.updatedAt) : null; } async findByName(name, organizationId) { const promptData = await this.prisma.prompt.findFirst({ where: { name, organizationId }, }); return promptData ? new Prompt(promptData.id, promptData.organizationId, promptData.name, promptData.description, promptData.template, promptData.type, promptData.createdAt, promptData.updatedAt) : null; } async findAll(organizationId) { const promptsData = await this.prisma.prompt.findMany({ where: { organizationId }, }); return promptsData.map(promptData => new Prompt(promptData.id, promptData.organizationId, promptData.name, promptData.description, promptData.template, promptData.type, promptData.createdAt, promptData.updatedAt)); } async save(prompt) { const savedPrompt = await this.prisma.prompt.upsert({ where: { id: prompt.id }, update: { name: prompt.name, description: prompt.description, template: prompt.template, type: prompt.type, updatedAt: new Date(), }, create: { id: prompt.id, organizationId: prompt.organizationId, name: prompt.name, description: prompt.description, template: prompt.template, type: prompt.type, }, }); return new Prompt(savedPrompt.id, savedPrompt.organizationId, savedPrompt.name, savedPrompt.description, savedPrompt.template, savedPrompt.type, savedPrompt.createdAt, savedPrompt.updatedAt); } async delete(id, organizationId) { await this.prisma.prompt.delete({ where: { id, organizationId }, }); } } //# sourceMappingURL=PromptPrismaRepository.js.map