// Package schemashape holds the physical-column-shape DTO. It lives in the
// nexuscrm-db module because the struct carries database/sql column-null types
// (sql.NullString), which must not appear in the publish-ready contract module.
//
// Only the shape struct lives here. The matcher/loader functions
// (ColumnShapeMatches, DesiredColumnType, LoadPhysicalColumnShapes) depend on
// the persistence backend (which itself imports kernel) and therefore remain in
// internal/bootstrap as port symbols.
package schemashape

import "database/sql"

// PhysicalColumnShape is the physical INFORMATION_SCHEMA view of a column.
// Table/column map keys returned by LoadPhysicalColumnShapes are lower-cased.
type PhysicalColumnShape struct {
	ColumnType    string
	Nullable      bool
	DefaultVal    sql.NullString
	CollationName sql.NullString
}
