31 lines
906 B
Go
31 lines
906 B
Go
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{}
|
|
}
|