Table creation implemented
This commit is contained in:
parent
2d812b20c4
commit
a04eb703f5
3 changed files with 346 additions and 1 deletions
88
lib/models/table_column_definition.dart
Normal file
88
lib/models/table_column_definition.dart
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
abstract class TableColumnDefinition {
|
||||
final String columnName;
|
||||
final bool isUnique;
|
||||
|
||||
TableColumnDefinition({
|
||||
required this.columnName,
|
||||
required this.isUnique,
|
||||
});
|
||||
|
||||
String get def => throw UnimplementedError("def getter not implemented");
|
||||
}
|
||||
|
||||
class SerialPrimaryColumnDefinition extends TableColumnDefinition {
|
||||
SerialPrimaryColumnDefinition({
|
||||
required super.columnName,
|
||||
}) : super(isUnique: true);
|
||||
|
||||
@override
|
||||
String get def => "$columnName:serial:primary";
|
||||
}
|
||||
|
||||
class TextColumnDefinition extends TableColumnDefinition {
|
||||
TextColumnDefinition({
|
||||
required super.columnName,
|
||||
required super.isUnique,
|
||||
});
|
||||
|
||||
@override
|
||||
String get def => "$columnName:str${isUnique ? ":unique" : ""}";
|
||||
}
|
||||
|
||||
class BooleanColumnDefinition extends TableColumnDefinition {
|
||||
BooleanColumnDefinition({
|
||||
required super.columnName,
|
||||
required super.isUnique,
|
||||
});
|
||||
|
||||
@override
|
||||
String get def => "$columnName:bool${isUnique ? ":unique" : ""}";
|
||||
}
|
||||
|
||||
class TimestampColumnDefinition extends TableColumnDefinition {
|
||||
TimestampColumnDefinition({
|
||||
required super.columnName,
|
||||
required super.isUnique,
|
||||
});
|
||||
|
||||
@override
|
||||
String get def => "$columnName:datetime${isUnique ? ":unique" : ""}";
|
||||
}
|
||||
|
||||
class DoubleColumnDefinition extends TableColumnDefinition {
|
||||
DoubleColumnDefinition({
|
||||
required super.columnName,
|
||||
required super.isUnique,
|
||||
});
|
||||
|
||||
@override
|
||||
String get def => "$columnName:float${isUnique ? ":unique" : ""}";
|
||||
}
|
||||
|
||||
class IntegerColumnDefinition extends TableColumnDefinition {
|
||||
IntegerColumnDefinition({
|
||||
required super.columnName,
|
||||
required super.isUnique,
|
||||
});
|
||||
|
||||
@override
|
||||
String get def => "$columnName:int${isUnique ? ":unique" : ""}";
|
||||
}
|
||||
|
||||
class UserRefColumnDefinition extends TableColumnDefinition {
|
||||
UserRefColumnDefinition({
|
||||
required super.columnName,
|
||||
}) : super(isUnique: false);
|
||||
|
||||
@override
|
||||
String get def => "$columnName:int-user";
|
||||
}
|
||||
|
||||
class AssetRefColumnDefinition extends TableColumnDefinition {
|
||||
AssetRefColumnDefinition({
|
||||
required super.columnName,
|
||||
}) : super(isUnique: false);
|
||||
|
||||
@override
|
||||
String get def => "$columnName:int-asset";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue