package Role_repository import ( "netina/models" "gorm.io/gorm" ) type RoleCommand interface{ CreateRole(o *models.Role) error UpdateRole(id uint , o *models.Role)(*models.Role , error) RemoveRole(id uint)error } type RoleCommandRepository struct{ DB *gorm.DB } func (r *RoleCommandRepository) CreateRole(Role *models.Role)error{ if err := r.DB.Create(&Role).Error ; err != nil { return err } return nil } func (r *RoleCommandRepository) UpdateRole(id uint , role *models.Role)(*models.Role , error){ var temp models.Role if err := r.DB.Where("is_removed = ?" , false).Where("Role_id = ?" , id).First(&temp).Error ; err != nil { return nil , err } temp.Name = role.Name temp.Modified_at = role.Modified_at temp.Modified_by = role.Modified_by if err := r.DB.Save(&temp).Error; err != nil { return nil , err } return &temp , nil } func (r *RoleCommandRepository) RemoveRole(id uint)error{ var Role models.Role if err := r.DB.Where("role_id = ?" , id).Model(&Role).Update("is_removed" , true).Error;err != nil { return err } return nil }