Files
immich/server/src/sql-tools/naming/naming.interface.ts

60 lines
1.1 KiB
TypeScript
Raw Normal View History

import { TriggerAction, TriggerScope, TriggerTiming } from 'src/sql-tools/types';
export type NamingItem =
| {
type: 'database';
name: string;
}
| {
type: 'table';
name: string;
}
| {
type: 'column';
name: string;
}
| {
type: 'primaryKey';
tableName: string;
columnNames: string[];
}
| {
type: 'foreignKey';
tableName: string;
columnNames: string[];
referenceTableName: string;
referenceColumnNames: string[];
}
| {
type: 'check';
tableName: string;
expression: string;
}
| {
type: 'unique';
tableName: string;
columnNames: string[];
}
| {
type: 'index';
tableName: string;
columnNames?: string[];
expression?: string;
where?: string;
}
| {
type: 'trigger';
tableName: string;
functionName: string;
actions: TriggerAction[];
scope: TriggerScope;
timing: TriggerTiming;
columnNames?: string[];
expression?: string;
where?: string;
};
export interface NamingInterface {
getName(item: NamingItem): string;
}