Files
PriceForge/internal/services/seen_cleanup.go
2026-03-07 23:11:42 +03:00

20 lines
704 B
Go

package services
import (
"git.mchus.pro/mchus/priceforge/internal/models"
"gorm.io/gorm"
)
// purgeSeenLotNames removes polluted seen-registry rows where another system wrote a LOT name
// into qt_vendor_partnumber_seen.partnumber. Keep rows that already have an explicit PN mapping.
func purgeSeenLotNames(db *gorm.DB) error {
if db == nil {
return nil
}
return db.
Where("EXISTS (SELECT 1 FROM lot l WHERE LOWER(TRIM(l.lot_name)) = LOWER(TRIM(qt_vendor_partnumber_seen.partnumber)))").
Where("NOT EXISTS (SELECT 1 FROM qt_partnumber_book_items pb WHERE LOWER(TRIM(pb.partnumber)) = LOWER(TRIM(qt_vendor_partnumber_seen.partnumber)))").
Delete(&models.VendorPartnumberSeen{}).
Error
}