getCreateTableStatement static method
Implementation
static String getCreateTableStatement(Map<String, dynamic> tableDefinition) {
String tbName = tableDefinition[tableName];
Map<String, dynamic> fields = tableDefinition[tableFields];
Map<String, Object> fieldCreatedOn = {};
fieldCreatedOn[fieldName] = createdOn;
fieldCreatedOn[fieldType] = typeDateTime;
fieldCreatedOn[fieldValue] = "NOW";
fieldCreatedOn[fieldAttributes] = [attributeTimestamp];
Map<String, Object> fieldModifiedOn = {};
fieldModifiedOn[fieldName] = modifiedOn;
fieldModifiedOn[fieldType] = typeDateTime;
fieldModifiedOn[fieldValue] = "NOW";
fieldModifiedOn[fieldAttributes] = [
attributeTimestamp,
attributeUpdateTimestamp
];
fields[createdOn] = fieldCreatedOn;
fields[modifiedOn] = fieldModifiedOn;
List<String> columns = fields.keys.map((fieldName) {
Map<String, dynamic> fieldDetails = fields[fieldName];
String fieldTypes = "";
if (fieldDetails[fieldSize] != null) {
fieldTypes = fieldDetails[fieldType] +
'(' +
fieldDetails[fieldSize].toString() +
')';
} else if (fieldDetails[fieldType] == "VARCHAR") {
fieldTypes = fieldDetails[fieldType] + '(30)';
} else {
fieldTypes = fieldDetails[fieldType];
}
List<String> attributes = List<String>.from(
fieldDetails[fieldAttributes]); // Specify the type here
String columnDefinition =
'$fieldName $fieldTypes${attributes.isNotEmpty ? ' ${attributes.join(" ")}' : ""}';
return columnDefinition;
}).toList();
String createTableSql =
'CREATE TABLE IF NOT EXISTS $tbName (${columns.join(', ')});';
return createTableSql;
}