package writers import ( "git.warky.dev/wdevs/relspecgo/pkg/models" ) // Writer defines the interface for writing database specifications // to various output formats at different granularity levels type Writer interface { // WriteDatabase takes a Database model and writes it to the desired format WriteDatabase(db *models.Database) error // WriteSchema takes a Schema model and writes it to the desired format WriteSchema(schema *models.Schema) error // WriteTable takes a Table model and writes it to the desired format WriteTable(table *models.Table) error } // WriterOptions contains common options for writers type WriterOptions struct { // OutputPath is the path where the output should be written OutputPath string // PackageName is the Go package name (for code generation) PackageName string // Additional options can be added here as needed Metadata map[string]interface{} }