60 lines
1.2 KiB
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
|
|
} |