UNPKG

skailan-ai

Version:

Servicio de IA y procesamiento de lenguaje natural para Skailan

56 lines 2.93 kB
import { LLMConfig } from '../../../domain/entities/LLMConfig'; export class LLMConfigPrismaRepository { prisma; constructor(prisma) { this.prisma = prisma; } async findById(id, organizationId) { const llmConfigData = await this.prisma.lLMConfig.findUnique({ where: { id, organizationId }, }); return llmConfigData ? new LLMConfig(llmConfigData.id, llmConfigData.organizationId, llmConfigData.name, llmConfigData.provider, llmConfigData.model, llmConfigData.apiKey, llmConfigData.parameters, llmConfigData.isActive, llmConfigData.createdAt, llmConfigData.updatedAt) : null; } async findByName(name, organizationId) { const llmConfigData = await this.prisma.lLMConfig.findFirst({ where: { name, organizationId }, }); return llmConfigData ? new LLMConfig(llmConfigData.id, llmConfigData.organizationId, llmConfigData.name, llmConfigData.provider, llmConfigData.model, llmConfigData.apiKey, llmConfigData.parameters, llmConfigData.isActive, llmConfigData.createdAt, llmConfigData.updatedAt) : null; } async findAll(organizationId) { const llmConfigsData = await this.prisma.lLMConfig.findMany({ where: { organizationId }, }); return llmConfigsData.map(llmConfigData => new LLMConfig(llmConfigData.id, llmConfigData.organizationId, llmConfigData.name, llmConfigData.provider, llmConfigData.model, llmConfigData.apiKey, llmConfigData.parameters, llmConfigData.isActive, llmConfigData.createdAt, llmConfigData.updatedAt)); } async save(llmConfig) { const savedLLMConfig = await this.prisma.lLMConfig.upsert({ where: { id: llmConfig.id }, update: { name: llmConfig.name, provider: llmConfig.provider, model: llmConfig.model, apiKey: llmConfig.apiKey, parameters: llmConfig.parameters, isActive: llmConfig.isActive, updatedAt: new Date(), }, create: { id: llmConfig.id, organizationId: llmConfig.organizationId, name: llmConfig.name, provider: llmConfig.provider, model: llmConfig.model, apiKey: llmConfig.apiKey, parameters: llmConfig.parameters, isActive: llmConfig.isActive, }, }); return new LLMConfig(savedLLMConfig.id, savedLLMConfig.organizationId, savedLLMConfig.name, savedLLMConfig.provider, savedLLMConfig.model, savedLLMConfig.apiKey, savedLLMConfig.parameters, savedLLMConfig.isActive, savedLLMConfig.createdAt, savedLLMConfig.updatedAt); } async delete(id, organizationId) { await this.prisma.lLMConfig.delete({ where: { id, organizationId }, }); } } //# sourceMappingURL=LLMConfigPrismaRepository.js.map