replicate method

Model replicate({
  1. List<String> except = const [],
})

Copy without key and timestamps (Laravel replicate).

Implementation

Model replicate({List<String> except = const []}) {
  final copy = modelDefinition.factory()..attachDatabase(_db);
  final skip = {
    modelDefinition.primaryKey,
    modelDefinition.createdAt,
    modelDefinition.updatedAt,
    modelDefinition.deletedAt,
    ...except,
  };
  for (final entry in _attributes.entries) {
    if (!skip.contains(entry.key)) {
      copy._attributes[entry.key] = entry.value;
    }
  }
  return copy;
}