Hub-Api/repositories/owner/command_repository.go

60 lines
1.2 KiB
Go

package owner_repository
import (
"netina/models"
"gorm.io/gorm"
)
type OwnerCommand interface{
CreateOwner(o *models.Owner) error
UpdateOwner(id uint , o *models.Owner)(*models.Owner , error)
RemoveOwner(id uint)error
}
type OwnerCommandRepository struct{
DB *gorm.DB
}
func (r *OwnerCommandRepository) CreateOwner(owner *models.Owner)error{
if err := r.DB.Create(&owner).Error ; err != nil {
return err
}
return nil
}
func (r *OwnerCommandRepository) UpdateOwner(id uint , owner *models.Owner)(*models.Owner , error){
var temp models.Owner
if err := r.DB.Where("is_removed = ?" , false).Where("owner_id = ?" , id).First(&temp).Error ; err != nil {
return nil , err
}
temp.FirstName = owner.FirstName
temp.LastName = owner.LastName
temp.Modified_at = owner.Modified_at
temp.Modified_by = owner.Modified_by
temp.PhoneNumber = owner.PhoneNumber
temp.NationalCode = owner.NationalCode
if err := r.DB.Save(&temp).Error; err != nil {
return nil , err
}
return &temp , nil
}
func (r *OwnerCommandRepository) RemoveOwner(id uint)error{
var owner models.Owner
if err := r.DB.Where("owner_id = ?" , id).Model(&owner).Update("is_removed" , true).Error;err != nil {
return err
}
return nil
}