import { ClassDeclaration, PropertyDeclaration, SourceFile } from "ts-morph"; import { ColumnMetadata, TableMetadata, TableRelationMetadata } from "../interfaces"; export interface Processor { getFileName(tableName: string): string | Promise; getEntityName(tableName: string): string | Promise; getPropertyName(propertyName: string): string | Promise; handleFile(file: SourceFile, tableMetadata: TableMetadata): void | Promise; handleClass(_class: ClassDeclaration, tableMetadata: TableMetadata): void | Promise; handleColumnProperty(property: PropertyDeclaration, columnMetadata: ColumnMetadata): void | Promise; handleOneToMany(classDeclaration: ClassDeclaration, relationMetadata: TableRelationMetadata): void | Promise; handleManyToOne(classDeclaration: ClassDeclaration, relationMetadata: TableRelationMetadata): void | Promise; mapType(type: string): string | Promise; }