@datamonsterr/vdt-dashboard
Version:
80 lines • 1.95 kB
TypeScript
import type { UniqueIdentifier } from '@dnd-kit/core';
export declare enum SQLDataType {
VARCHAR = "VARCHAR",
CHAR = "CHAR",
TEXT = "TEXT",
INT = "INT",
BIGINT = "BIGINT",
SMALLINT = "SMALLINT",
DECIMAL = "DECIMAL",
FLOAT = "FLOAT",
DOUBLE = "DOUBLE",
BOOLEAN = "BOOLEAN",
DATE = "DATE",
DATETIME = "DATETIME",
TIMESTAMP = "TIMESTAMP",
TIME = "TIME",
JSON = "JSON",
BLOB = "BLOB"
}
export interface Column {
id: UniqueIdentifier;
name: string;
dataType: SQLDataType;
length?: number;
nullable: boolean;
primaryKey: boolean;
autoIncrement: boolean;
defaultValue?: string;
description?: string;
}
export interface Table {
id: UniqueIdentifier;
name: string;
columns: Column[];
position: {
x: number;
y: number;
};
description?: string;
}
export interface ForeignKey {
id: UniqueIdentifier;
sourceTableId: UniqueIdentifier;
sourceColumnId: UniqueIdentifier;
targetTableId: UniqueIdentifier;
targetColumnId: UniqueIdentifier;
onDelete: 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION';
onUpdate: 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION';
}
export interface DatabaseSchema {
id: UniqueIdentifier;
name: string;
tables: Table[];
foreignKeys: ForeignKey[];
createdAt: Date;
updatedAt: Date;
}
export declare enum ToolType {
MOVE = "MOVE",
HAND = "HAND",
TABLE = "TABLE",
EDIT = "EDIT",
RELATIONSHIP = "CONNECTION"
}
export interface SchemaBuilderState {
selectedTool: ToolType;
selectedTableId: UniqueIdentifier | null;
selectedColumnId: UniqueIdentifier | null;
isConnecting: boolean;
connectionStart: {
tableId: UniqueIdentifier;
columnId: UniqueIdentifier;
} | null;
canvasOffset: {
x: number;
y: number;
};
isPanning: boolean;
}
//# sourceMappingURL=database.d.ts.map