diff --git a/pkg/models/telegram_portal_token.go b/pkg/models/telegram_portal_token.go index 75b12f4..c548a6e 100644 --- a/pkg/models/telegram_portal_token.go +++ b/pkg/models/telegram_portal_token.go @@ -21,8 +21,8 @@ func (TelegramPortalToken) TableName() string { return "telegram_portal_tokens" // GenerateTelegramPortalToken genera (o renueva) el código de vinculación para el usuario. // El código tiene 6 caracteres hexadecimales en mayúsculas (e.g. "A3F9B2"). func GenerateTelegramPortalToken(portalUserID uint) (*TelegramPortalToken, error) { - // Eliminar tokens previos del mismo usuario - app.Http.Database.DB.Where("portal_user_id = ?", portalUserID).Delete(&TelegramPortalToken{}) + // Eliminar tokens previos del mismo usuario (borrado físico para evitar conflicto con uniqueIndex) + app.Http.Database.DB.Unscoped().Where("portal_user_id = ?", portalUserID).Delete(&TelegramPortalToken{}) b := make([]byte, 3) if _, err := rand.Read(b); err != nil { @@ -46,5 +46,5 @@ func FindTelegramPortalToken(token string) (*TelegramPortalToken, error) { // DeleteTelegramPortalToken elimina el token de un usuario (tras vincular correctamente). func DeleteTelegramPortalToken(portalUserID uint) { - app.Http.Database.DB.Where("portal_user_id = ?", portalUserID).Delete(&TelegramPortalToken{}) + app.Http.Database.DB.Unscoped().Where("portal_user_id = ?", portalUserID).Delete(&TelegramPortalToken{}) }