package user import ( "fmt" "gorm.io/gorm" ) type GormUserStore struct { db *gorm.DB } func NewGormUserStore(db *gorm.DB) (*GormUserStore, error) { if db == nil { return nil, fmt.Errorf("db is nil") } return &GormUserStore{ db: db, }, nil } func (s *GormUserStore) Create(user *User) error { return s.db.Create(user).Error } func (s *GormUserStore) GetByID(id int64) (*User, error) { var user User err := s.db.First(&user, id).Error if err != nil { return nil, err } return &user, nil } func (s *GormUserStore) GetByUsername(username string) (*User, error) { var user User err := s.db.Where("username = ?", username).First(&user).Error if err != nil { return nil, err } return &user, nil } func (s *GormUserStore) Update(user *User) error { return s.db.Save(user).Error } func (s *GormUserStore) Delete(id int64) error { return s.db.Delete(&User{}, id).Error }