using Strata.SqlTools.SqlBreakdown.Classes;
namespace Strata.SqlTools.Markdown.PostgreSql;
///
/// Generates Mermaid diagrams for PostgreSQL SQL statements, including sequence diagrams
/// for statement execution flow and entity-relationship diagrams.
///
public class SqlStatementGenerator
{
///
/// Generates a Mermaid sequence diagram showing PostgreSQL SQL statement execution flow.
///
/// The PostgreSQL SQL breakdown object.
/// Optional title for the diagram.
/// A string containing the Mermaid sequence diagram markdown.
public static string GenerateSequenceDiagram(SqlBreakdownBase sqlBreakdown, string? title = null)
{
return SqlServer.SqlStatementGenerator.GenerateSequenceDiagram(sqlBreakdown, title);
}
///
/// Generates a Mermaid entity-relationship diagram from table names.
///
/// Collection of table names to include in the diagram.
/// Optional title for the diagram.
/// A string containing the Mermaid ER diagram markdown.
public static string GenerateEntityRelationshipDiagram(IEnumerable tables, string? title = null)
{
return SqlServer.SqlStatementGenerator.GenerateEntityRelationshipDiagram(tables, title);
}
}