package player import "gorm.io/gorm" type Repository struct { db *gorm.DB } func NewRepository(db *gorm.DB) *Repository { return &Repository{db: db} } func (r *Repository) Create(profile *PlayerProfile) error { return r.db.Create(profile).Error } func (r *Repository) FindByUserID(userID uint) (*PlayerProfile, error) { var profile PlayerProfile if err := r.db.Where("user_id = ?", userID).First(&profile).Error; err != nil { return nil, err } return &profile, nil } func (r *Repository) Update(profile *PlayerProfile) error { return r.db.Save(profile).Error } func (r *Repository) UpdateStats(userID uint, updates map[string]interface{}) error { return r.db.Model(&PlayerProfile{}).Where("user_id = ?", userID).Updates(updates).Error } func (r *Repository) FindByUsername(username string) (*PlayerProfile, error) { var profile PlayerProfile if err := r.db.Joins("JOIN users ON users.id = player_profiles.user_id"). Where("users.username = ? AND users.deleted_at IS NULL", username). First(&profile).Error; err != nil { return nil, err } return &profile, nil }