TableProperty class
Represents a database table column/property for code generation.
This class models a PostgreSQL table column and provides utilities for mapping database types to Dart types, handling nullability, and generating appropriate Dart field declarations.
Type Mapping
The following PostgreSQL types are supported:
- Numeric:
int4
,int8
,serial
,bigserial
→int
- Floating:
float4
,float8
,double precision
→double
- Text:
text
,varchar
,uuid
,timestamp
→String
- Boolean:
boolean
,bool
→bool
- JSON:
json
,jsonb
→Map<String, dynamic>
- Arrays:
_text
→List<String>
,_numeric
→List<num>
Example
For a PostgreSQL column:
email VARCHAR(255) NULL
A TableProperty would be:
TableProperty(
name: 'email',
type: 'character varying',
isNullable: true,
isPrimaryKey: false,
isAutoIncrement: false,
)
Which generates the Dart field:
final String? email;
Constructors
- TableProperty.new({required String name, required String type, required bool isNullable, required bool isPrimaryKey, required bool isAutoIncrement})
- Creates a new TableProperty instance.
Properties
- dartName → String
-
The property name in Dart camelCase convention.
no setter
- dartType → String
-
The corresponding Dart type for this database column.
no setter
- field → String
-
Generates the Dart field declaration code.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- isAutoIncrement → bool
-
Whether this column auto-increments (e.g., SERIAL, AUTO_INCREMENT).
final
- isNullable → bool
-
Whether the column allows NULL values.
final
- isPrimaryKey → bool
-
Whether this column is part of the primary key.
final
- name → String
-
The original database column name (e.g., 'created_at').
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- type → String
-
The PostgreSQL data type of the column (e.g., 'varchar', 'int4').
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited