19 lines
1.1 KiB
Markdown
19 lines
1.1 KiB
Markdown
# Plan: pkg/models (20.4%)
|
|
|
|
## Existing
|
|
- `directives_test.go`
|
|
|
|
## Gaps
|
|
|
|
| File | Funcs | Cases |
|
|
|------|-------|-------|
|
|
| `models.go` | All `SQLName` methods, `UpdateDate`, `GetPrimaryKey`, `columnLess`, `GetForeignKeys` | Case handling, empty/nil maps, composite PK ordering, FK filtering |
|
|
| `models.go` | `Init*` constructors (Database, Schema, Table, Column, Index, Relation, Relationship, Constraint, Script, View, Sequence, Domain, DomainTable, Enum) | Maps/slices non-nil, name set, defaults |
|
|
| `sorting.go` | 20 Sort* funcs | By name and by sequence; ties; map variants return sorted slice; input not mutated where documented |
|
|
| `flatview.go` | ToFlatColumns, ToFlatTables, ToFlatConstraints, ToFlatRelationships | Multi-schema, empty db, deterministic order |
|
|
| `summaryview.go` | ToSummary | Counts across object types |
|
|
| `directives.go` | `directiveFromAny` (22%) | Each input type branch, invalid type |
|
|
|
|
## Data needed
|
|
- One shared in-test builder for a multi-schema Database (reuse `tests/assets/dbml/complex.dbml` via reader only if no import cycle; otherwise build in code).
|