Executando verificação de segurança...
Em resposta a [Não disponível]
2

Acredito que a regra seja simples. Coloque uma condição de isAvailable para a conta, quando esse valor for alterado, ele receberá uma data. Se for o caso de banimento, será a data da exclusão. Ai com base nesse valor, você consegue pegar o valor dele após trinta dias para fazer a exclusão da conta já que a intenção é limpar.

Mas não recomendo fazer isso, é recomendável apenas limpar certas informações para limpar o banco e deixar registrado lá, caso ao contrário, após trintas dias, a conta estará disponível para uso novamente.

Carregando publicação patrocinada...
2

Já consegui "resolver" aqui!

Fiz a reestruturação para deixar um "ban_history" no banco de dados, visto que é a opção mais recomendada para manter o histórico e não perder informações

por enquanto, está assim:

  ban_history: [{
    banned_by: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'User',
      required: false
    },
    ban_date: { type: Date, required: false },
    ban_message: {
      type: String,
      required: false
    },

    unban_date: { type: Date, required: false },
    unban_message: {
      type: String,
      required: false
    },
    unbanned_by: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'User',
      required: false
    },
  }]

caso o usuario seja banido, um objeto a mais será adicionado e, caso seja desbanido, as informações do unban serão adicionadas ao objeto do último ban

Mesmo ocupando mais espaço, acho que é a melhor opção por agora

Na questão do banimento, irei deixar todos os gmails banidos em uma collection separada no banco de dados, junto (ou não) do histórico de bans do usuário

Mesmo assim, obrigado pela ajuda!!