refactor: replace client deletion with user detachment and update client schema to support optional user association

This commit is contained in:
2026-07-19 19:52:45 -03:00
parent 74d6ee6706
commit 10ec32139c
5 changed files with 18 additions and 27 deletions
+3 -24
View File
@@ -284,7 +284,7 @@ class UsersManager implements IUsersManager {
userId: data.sessionUser,
});
//Eliminar los clientes creados con el usuario.
//Desvincular los clientes creados con el usuario sin borrar el historial de la organizacion.
const clients = await ClientsList.clients.find({
userId: data.sessionUser,
});
@@ -294,21 +294,7 @@ class UsersManager implements IUsersManager {
continue;
}
//Tengo que pasarlo como sesionUSer al duenio de la organizacion. para que pueda eliminar.
const orgClient = await CompaniesList.companies.findOne({
_id: String(client.companyId),
});
if (!orgClient) {
continue;
}
//En este caso borra el cliente pero no chequea el saldo de la cuenta.
await ClientsList.deleteClient({
clientId: String(client.id),
checkCashOnAccount: false,
sessionUser: String(orgClient.ownerId),
});
await ClientsList.clients.detachUser({ clientId: String(client.id) });
}
//Eliminar las conversaciones
@@ -1279,14 +1265,7 @@ class UsersManager implements IUsersManager {
for (const client of clients) {
if (!client.id) continue;
const orgClient = await CompaniesList.companies.findOne({ _id: String(client.companyId) });
if (!orgClient) continue;
await ClientsList.deleteClient({
clientId: String(client.id),
checkCashOnAccount: false,
sessionUser: String(orgClient.ownerId),
});
await ClientsList.clients.detachUser({ clientId: String(client.id) });
}
await MessageConversationList.deleteConversationsByUser({ userId: data.userId });