package main import ( "fmt" "log" "gorm.io/driver/mysql" "gorm.io/gorm" ) const ( // Connection string from simulate_test/main.go DbDSN = "root:bindbox2025kdy@tcp(150.158.78.154:3306)/dev_game?charset=utf8mb4&parseTime=True&loc=Local" ) type UserItemCards struct { ID int64 `gorm:"column:id"` CardID int64 `gorm:"column:card_id"` Status int32 `gorm:"column:status"` UsedDrawLogID int64 `gorm:"column:used_draw_log_id"` UsedDiff int64 `gorm:"-"` // logic placeholder } func (UserItemCards) TableName() string { return "user_item_cards" } func main() { // 1. Connect DB db, err := gorm.Open(mysql.Open(DbDSN), &gorm.Config{}) if err != nil { log.Fatalf("DB connection failed: %v", err) } userCardID := 836 // 2. Query User Item Card var userCard UserItemCards err = db.Where("id = ?", userCardID).First(&userCard).Error if err != nil { log.Fatalf("User Card %d not found: %v", userCardID, err) } fmt.Printf("UserCard %d Status: %d\n", userCard.ID, userCard.Status) fmt.Printf("UsedDrawLogID: %d\n", userCard.UsedDrawLogID) if userCard.Status == 2 && userCard.UsedDrawLogID == 0 { fmt.Println("WARNING: Card is USED (Status 2) but UsedDrawLogID is 0. Potential orphan data.") } else if userCard.UsedDrawLogID > 0 { fmt.Printf("Card correctly bound to DrawLog ID: %d\n", userCard.UsedDrawLogID) } }