monitoring-app/src/packages/administrativo/interfaces/Log/LogDatabaseSchemaInterface.ts
2025-11-14 17:10:56 -03:00

89 lines
1.8 KiB
TypeScript

/**
* Interface principal do retorno contendo metadados do banco:
* tabelas, views e procedures.
*/
export interface LogDatabaseSchemaInterface {
message?: string;
data: {
tables: TableMetadata[];
views: ViewMetadata[];
primary_keys: PrimaryKeyMetadata[];
foreign_keys: ForeignKeyMetadata[];
indexes: IndexMetadata[];
procedures: ProcedureMetadata[];
triggers: TriggerMetadata[];
}
}
/**
* Estrutura de cada item dentro de "tables".
*/
export interface TableMetadata {
TABLE_NAME: string;
FIELD_NAME: string;
NULLABLE: string; // Vem como string ("NULL ")
FIELD_TYPE: string;
DEFAULT_VALUE: string | null;
DESCRIPTION: string | null;
}
/**
* Estrutura de cada item dentro de "primary_keys".
*/
export interface PrimaryKeyMetadata {
TABLE_NAME: string;
FIELD_NAME: string;
CONSTRAINT_NAME: string;
}
/**
* Estrutura de cada item dentro de "indexes".
*/
export interface IndexMetadata {
TABLE_NAME: string;
INDEX_NAME: string;
FIELD_NAME: string;
UNIQUENESS: string;
SORT_ORDER: string;
DESCRIPTION: string | null;
}
/**
* Estrutura de cada item dentro de "foreign_keys".
*/
export interface ForeignKeyMetadata {
TABLE_NAME: string;
CONSTRAINT_NAME: string;
FIELD_NAME: string;
REF_CONSTRAINT_NAME: string;
REFERENCED_TABLE: string;
}
/**
* Estrutura de cada item dentro de "views".
*/
export interface ViewMetadata {
VIEW_NAME: string;
VIEW_DEFINITION: string;
}
/**
* Estrutura de cada item dentro de "views".
*/
export interface TriggerMetadata {
TRIGGER_NAME: string;
TABLE_NAME: string | null,
SEQUENCE: number,
TYPE: number,
SOURCE_CODE: string;
STATUS: string
}
/**
* Estrutura de cada item dentro de "procedures".
*/
export interface ProcedureMetadata {
PROCEDURE_NAME: string;
SOURCE_CODE: string;
}