package store_repository import ( "netina/models" "gorm.io/gorm" ) type StoreCommand interface{ CreateStore(o *models.Store) error UpdateStore(id uint , o *models.Store)(*models.Store , error) RemoveStore(id uint)error } type StoreCommandRepository struct{ DB *gorm.DB } func (r *StoreCommandRepository) CreateStore(store *models.Store)error{ if err := r.DB.Create(&store).Error ; err != nil { return err } return nil } func (r *StoreCommandRepository) GetStore(id uint)(*models.Store , error){ var store models.Store if err := r.DB.Where("is_removed = ?" , false).Where("store_id = ?" , id).First(&store).Error; err != nil { return nil , err } return &store , nil } func (r *StoreCommandRepository) GetStores(id uint)([]models.Store , error){ var store []models.Store if err := r.DB.Where("is_removed = ?" , false).Where("owner_id = ?" , id).Find(&store).Error; err != nil { return nil , err } return store , nil } func (r *StoreCommandRepository) UpdateStore(id uint , store *models.Store)(*models.Store , error){ var temp models.Store if err := r.DB.Where("is_removed = ?" , false).Where("store_id = ?" , id).First(&temp).Error ; err != nil { return nil , err } temp.Address = store.Address temp.AdminPanelAddress = store.AdminPanelAddress temp.ApiAddress = store.ApiAddress temp.Modified_at = store.Modified_at temp.Modified_by = store.Modified_by temp.StorageAddress = store.StorageAddress temp.Name = store.Name temp.WebAddress = store.WebAddress if err := r.DB.Save(&temp).Error; err != nil { return nil , err } return &temp , nil } func (r *StoreCommandRepository) RemoveStore(id uint)error{ if err := r.DB.Where("store_id = ?" , id).Error;err != nil { return err } return nil }