package user_repository import ( "netina/models" "gorm.io/gorm" ) type UserCommand interface{ CreateUser(o *models.User) error UpdateUser(id uint , o *models.User)(*models.User , error) RemoveUser(id uint)error } type UserCommandRepository struct{ DB *gorm.DB } func (r *UserCommandRepository) CreateUser(user *models.User)error{ if err := r.DB.Create(&user).Error ; err != nil { return err } return nil } func (r *UserCommandRepository) UpdateUser(id uint , user *models.User)(*models.User , error){ var temp models.User if err := r.DB.Where("is_removed = ?" , false).Where("user_id = ?" , id).First(&temp).Error ; err != nil { return nil , err } temp.Name = user.Name temp.PhoneNumber = user.PhoneNumber temp.Role_id = user.Role_id temp.Modified_at = user.Modified_at temp.Modified_by = user.Modified_by if err := r.DB.Save(&temp).Error; err != nil { return nil , err } return &temp , nil } func (r *UserCommandRepository) RemoveUser(id uint)error{ var user models.User if err := r.DB.Where("user_id = ?" , id).Model(&user).Update("is_removed" , true).Error;err != nil { return err } return nil }