toSoftDeleteSql method

String toSoftDeleteSql(
  1. String idColumnName,
  2. String softDeleteColumnName,
  3. String? versionColumnName
)

Implementation

String toSoftDeleteSql(String idColumnName, String softDeleteColumnName,
    String? versionColumnName) {
  var where = [
    conditions.toSql(wrap: false),
    ...joins.map((e) => e.conditions.toSql(wrap: false))
  ].where((element) => element.trim().isNotEmpty).join(' AND ');

  if (where.isNotEmpty) where = 'where $where';
  return [
    'update',
    tableName,
    'set',
    softDeleteColumnName,
    '=@deleted',
    if (versionColumnName != null)
      ', $versionColumnName=$versionColumnName+1',
    'where',
    idColumnName,
    'in',
    '('
        'select',
    distinct ? 'distinct' : '',
    '$alias.$idColumnName',
    'from',
    tableName,
    alias,
    joins.toSql(),
    where,
    ')'
  ].where((element) => element.isNotEmpty).join(' ');
}