package repositories import ( "git.secnex.io/secnex/certman/models" "gorm.io/gorm" ) type UserRepository struct { db *gorm.DB } // NewUserRepository creates a new user repository func NewUserRepository(db *gorm.DB) *UserRepository { return &UserRepository{db: db} } // GetByID returns a user by their ID func (r *UserRepository) GetByID(id string) (models.User, error) { var user models.User if err := r.db.Where("id = ?", id).First(&user).Error; err != nil { return models.User{}, err } return user, nil } // GetAll returns all users func (r *UserRepository) GetAll() ([]models.User, error) { var users []models.User if err := r.db.Find(&users).Error; err != nil { return []models.User{}, err } return users, nil } // Create creates a new user func (r *UserRepository) Create(user models.User) (models.User, error) { if err := r.db.Create(&user).Error; err != nil { return models.User{}, err } return user, nil } // Update updates a user func (r *UserRepository) Update(user models.User) error { return r.db.Save(&user).Error } // Delete deletes a user by their ID func (r *UserRepository) Delete(id string) error { return r.db.Delete(&models.User{}, id).Error } // HardDelete deletes a user by their ID func (r *UserRepository) HardDelete(user models.User) error { return r.db.Unscoped().Delete(&user).Error }