import { Service } from 'typedi'; import { ExecutionMetadataRepository } from '@db/repositories/executionMetadata.repository'; import type { ExecutionMetadata } from '@db/entities/ExecutionMetadata'; @Service() export class ExecutionMetadataService { constructor(private readonly executionMetadataRepository: ExecutionMetadataRepository) {} async save(executionId: string, executionMetadata: Record): Promise { const metadataRows: Array> = []; for (const [key, value] of Object.entries(executionMetadata)) { metadataRows.push({ executionId, key, value, }); } await this.executionMetadataRepository.upsert(metadataRows, { conflictPaths: { executionId: true, key: true }, }); } }