import { CrudConfigService } from '../../config.service'; import { EntityManager } from 'typeorm'; /** * Interface for defining a migration * @see {@link https://elsikora.com/docs/nestjs-crud-config/migration-system/definitions | Migration System - Definitions} * @see {@link https://elsikora.com/docs/nestjs-crud-config/api-reference/interfaces/config-migration-definition | API Reference - IConfigMigrationDefinition} */ export interface IConfigMigrationDefinition { /** * Description of what this migration does */ description?: string; /** * Optional rollback function * @param {CrudConfigService} configService - The config service for managing configurations * @param {EntityManager} [entityManager] - Exact standalone or supplied Automator owner manager for rollback * @returns {Promise} Promise that resolves when rollback is complete */ down?: (configService: CrudConfigService, entityManager?: EntityManager) => Promise; /** * Unique name of the migration (should be sortable, e.g., "001_initial_config") */ name: string; /** * The migration function that will be executed * @param {CrudConfigService} configService - The config service for managing configurations * @param {EntityManager} [entityManager] - Exact standalone or supplied Automator owner manager, or undefined when transaction execution is disabled * @returns {Promise} Promise that resolves when migration is complete */ up: (configService: CrudConfigService, entityManager?: EntityManager) => Promise; }