You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
package impl
|
|
|
|
import (
|
|
"health-ai/internal/database"
|
|
"health-ai/internal/model"
|
|
)
|
|
|
|
type UserRepositoryImpl struct{}
|
|
|
|
func NewUserRepository() *UserRepositoryImpl {
|
|
return &UserRepositoryImpl{}
|
|
}
|
|
|
|
func (r *UserRepositoryImpl) Create(user *model.User) error {
|
|
return database.DB.Create(user).Error
|
|
}
|
|
|
|
func (r *UserRepositoryImpl) GetByID(id uint) (*model.User, error) {
|
|
var user model.User
|
|
err := database.DB.First(&user, id).Error
|
|
return &user, err
|
|
}
|
|
|
|
func (r *UserRepositoryImpl) GetByPhone(phone string) (*model.User, error) {
|
|
var user model.User
|
|
err := database.DB.Where("phone = ?", phone).First(&user).Error
|
|
return &user, err
|
|
}
|
|
|
|
func (r *UserRepositoryImpl) GetByEmail(email string) (*model.User, error) {
|
|
var user model.User
|
|
err := database.DB.Where("email = ?", email).First(&user).Error
|
|
return &user, err
|
|
}
|
|
|
|
func (r *UserRepositoryImpl) Update(user *model.User) error {
|
|
return database.DB.Save(user).Error
|
|
}
|
|
|
|
func (r *UserRepositoryImpl) UpdateSurveyStatus(userID uint, completed bool) error {
|
|
return database.DB.Model(&model.User{}).Where("id = ?", userID).Update("survey_completed", completed).Error
|
|
}
|
|
|