import { eq } from "drizzle-orm"; import type { ExternalModelConfigurationReader } from "../../domain/ports/external-model-configuration.reader.js"; import type { AppDatabase } from "../database-context.js"; import { externalModelConfigurations } from "../schema/external-model-configurations.js"; import { projects } from "../schema/projects.js"; export class ExternalModelConfigurationRepository implements ExternalModelConfigurationReader { constructor(private readonly database: AppDatabase) {} getByProject(projectId: string) { const project = this.database .select({ id: projects.id }) .from(projects) .where(eq(projects.id, projectId)) .get(); if (!project) return { projectExists: false, configuration: null }; const configuration = this.database .select() .from(externalModelConfigurations) .where(eq(externalModelConfigurations.projectId, projectId)) .get() ?? null; return { projectExists: true, configuration }; } }