package db func (d *DB) GetAllMailUsers() ([]User, error) { var users []User if err := d.Preload("Domain").Find(&users).Error; err != nil { return nil, err } if users == nil { users = []User{} } return users, nil } func (d *DB) GetUsersByDomain(domainID uint) ([]User, error) { var users []User if err := d.Where("domain_id = ?", domainID).Find(&users).Error; err != nil { return nil, err } if users == nil { users = []User{} } return users, nil } func (d *DB) GetUserByID(id uint) (*User, error) { var user User if err := d.Preload("Domain").First(&user, id).Error; err != nil { return nil, err } return &user, nil } func (d *DB) GetUserByEmail(email string) (*User, error) { var user User if err := d.Where("email = ?", email).First(&user).Error; err != nil { return nil, err } return &user, nil } func (d *DB) CreateUser(email, passwordHash string, quota int64) (*User, error) { user := User{ Email: email, Password: passwordHash, Quota: quota, } if err := d.Create(&user).Error; err != nil { return nil, err } return &user, nil } func (d *DB) CreateUserInDomain(email, passwordHash string, quota int64, domainID uint) (*User, error) { user := User{ DomainID: domainID, Email: email, Password: passwordHash, Quota: quota, } if err := d.Create(&user).Error; err != nil { return nil, err } return &user, nil } func (d *DB) UpdateUserPassword(id uint, passwordHash string) error { return d.Model(&User{}).Where("id = ?", id).Update("password", passwordHash).Error } func (d *DB) UpdateUserQuota(id uint, quota int64) error { return d.Model(&User{}).Where("id = ?", id).Update("quota", quota).Error } func (d *DB) DeleteUser(id uint) error { return d.Delete(&User{}, id).Error }