package repository import ( "users_management/m/model/entity" "gorm.io/gorm" ) type UsersRepo interface { Post(user entity.User) error GetRoleByDepartment(departmentName string) (entity.Role, error) GetUserByUsername(username string) (entity.User, error) } type usersRepo struct { db *gorm.DB } func NewUsersRepo(db *gorm.DB) UsersRepo { return &usersRepo{ db: db, } } func (r *usersRepo) Post(user entity.User) error { err := r.db.Create(&user).Error if err != nil { return err } return nil } func (r *usersRepo) GetRoleByDepartment(departmentName string) (entity.Role, error) { var role entity.Role err := r.db.Where("name = ?", departmentName).First(&role).Error if err != nil { return role, err } return role, nil } func (r *usersRepo) GetUserByUsername(username string) (entity.User, error) { var users entity.User err := r.db.Where("username = ?", username).First(&users).Error if err != nil { return users, err } return users, nil }