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 }