generateInsertMethod function

String generateInsertMethod(
  1. Table table
)

Implementation

String generateInsertMethod(Table table) {
  final columns = table.columns;
  final StringBuffer code = StringBuffer();

  // Method signature
  code.writeln('static Map<String, dynamic> insert({');

  // Generate parameters
  for (final entry in columns.entries) {
    final columnName = entry.key;
    final columnDetails = entry.value;
    final isRequiredInInsert =
        !columnDetails.hasDefaultValue && columnDetails.isRequired;
    final dartType = columnDetails.dartType;

    code.writeln(
        '  ${isRequiredInInsert ? "required " : ""}$dartType${isRequiredInInsert ? "" : "?"} $columnName,');
  }
  code.writeln('}) {');

  code.writeln('return _generateMap(');

  for (final entry in columns.entries) {
    final columnName = entry.key;
    code.writeln('  $columnName: $columnName,');
  }

  code.writeln(');');

  // // Method body
  // code.writeln('  return {');
  // // Generate key-value pairs
  // for (final entry in columns.entries) {
  //   final columnName = entry.key;
  //   final columnDetails = entry.value;
  //   final isRequired = columnDetails.isRequired;
  //   final dbColName = columnDetails.dbColName;
  //   final dartType = columnDetails.dartType;
  //   final postgresFormat = columnDetails.postgresFormat;

  //   final jsonEncodable =
  //       toJsonEncodable(dartType, postgresFormat, columnName, columnDetails);

  //   if (isRequired) {
  //     code.writeln("    '$dbColName': $jsonEncodable,");
  //   } else {
  //     code.writeln(
  //         "    if ($columnName != null) '$dbColName': $jsonEncodable,");
  //   }
  // }
  // code.writeln('  };');

  code.writeln('}');

  return code.toString();
}