using System.Collections.Generic; using System.Threading.Tasks; namespace DataConnection.Interfaces; /// /// Interfaccia per provider di estrazione dello schema del database /// public interface IDatabaseSchemaProvider { /// /// Estrae lo schema del database (tabelle e colonne) /// /// Stringa di connessione al database /// Struttura gerarchica delle tabelle e delle loro colonne Task>> GetDatabaseSchemaAsync(string connectionString); /// /// Ottiene la lista dei database disponibili sul server /// /// Stringa di connessione al server (senza specificare il database) /// Lista dei nomi dei database disponibili Task> GetAvailableDatabasesAsync(string connectionString); /// /// Ottiene solo la lista dei nomi delle tabelle disponibili (senza dettagli delle colonne) /// /// Stringa di connessione al database /// Lista dei nomi delle tabelle Task> GetTableNamesAsync(string connectionString); /// /// Ottiene i dettagli delle colonne per una specifica tabella /// /// Stringa di connessione al database /// Nome della tabella (con schema se necessario) /// Lista delle informazioni sulle colonne Task> GetTableSchemaAsync(string connectionString, string tableName); }