From b019a248cf74e60a6b715bc2c86bae25113fbbd0 Mon Sep 17 00:00:00 2001 From: rahul shukla Date: Mon, 18 Feb 2019 13:00:40 +0530 Subject: [PATCH] interfaces & proxy class implemented --- .../Attribute/src/Contracts/Attribute.php | 7 ++++ .../src/Contracts/AttributeFamily.php | 7 ++++ .../src/Contracts/AttributeGroup.php | 7 ++++ .../src/Contracts/AttributeOption.php | 7 ++++ .../Contracts/AttributeOptionTranslation.php | 7 ++++ .../src/Contracts/AttributeTranslation.php | 7 ++++ .../Webkul/Attribute/src/Models/Attribute.php | 5 +-- .../Attribute/src/Models/AttributeFamily.php | 14 ++++---- .../src/Models/AttributeFamilyProxy.php | 10 ++++++ .../Attribute/src/Models/AttributeGroup.php | 7 ++-- .../src/Models/AttributeGroupProxy.php | 10 ++++++ .../Attribute/src/Models/AttributeOption.php | 3 +- .../src/Models/AttributeOptionProxy.php | 10 ++++++ .../src/Models/AttributeOptionTranslation.php | 3 +- .../AttributeOptionTranslationProxy.php | 10 ++++++ .../Attribute/src/Models/AttributeProxy.php | 10 ++++++ .../src/Models/AttributeTranslation.php | 5 +-- .../src/Models/AttributeTranslationProxy.php | 10 ++++++ .../Providers/AttributeServiceProvider.php | 2 ++ .../src/Providers/ModuleServiceProvider.php | 17 ++++++++++ .../AttributeFamilyRepository.php | 4 +-- .../Repositories/AttributeGroupRepository.php | 8 ++--- .../AttributeOptionRepository.php | 8 ++--- .../src/Repositories/AttributeRepository.php | 8 ++--- .../Category/src/Contracts/Category.php | 7 ++++ .../src/Contracts/CategoryTranslation.php | 7 ++++ .../Webkul/Category/src/Models/Category.php | 3 +- .../Category/src/Models/CategoryProxy.php | 10 ++++++ .../src/Models/CategoryTranslation.php | 5 +-- .../src/Models/CategoryTranslationProxy.php | 10 ++++++ .../src/Providers/CategoryServiceProvider.php | 2 ++ .../src/Providers/ModuleServiceProvider.php | 13 ++++++++ .../src/Repositories/CategoryRepository.php | 2 +- .../Webkul/Checkout/src/Contracts/Cart.php | 7 ++++ .../Checkout/src/Contracts/CartAddress.php | 7 ++++ .../Checkout/src/Contracts/CartItem.php | 7 ++++ .../Checkout/src/Contracts/CartPayment.php | 7 ++++ .../src/Contracts/CartShippingRate.php | 7 ++++ packages/Webkul/Checkout/src/Models/Cart.php | 19 +++++------ .../Checkout/src/Models/CartAddress.php | 6 ++-- .../Checkout/src/Models/CartAddressProxy.php | 10 ++++++ .../Webkul/Checkout/src/Models/CartItem.php | 9 ++--- .../Checkout/src/Models/CartItemProxy.php | 10 ++++++ .../Checkout/src/Models/CartPayment.php | 3 +- .../Checkout/src/Models/CartPaymentProxy.php | 10 ++++++ .../Webkul/Checkout/src/Models/CartProxy.php | 10 ++++++ .../Checkout/src/Models/CartShippingRate.php | 6 ++-- .../src/Models/CartShippingRateProxy.php | 10 ++++++ .../src/Providers/CheckoutServiceProvider.php | 2 ++ .../src/Providers/ModuleServiceProvider.php | 16 +++++++++ .../Repositories/CartAddressRepository.php | 2 +- .../src/Repositories/CartItemRepository.php | 2 +- .../src/Repositories/CartRepository.php | 2 +- .../Webkul/Core/src/Contracts/Channel.php | 7 ++++ .../Webkul/Core/src/Contracts/CoreConfig.php | 7 ++++ .../Webkul/Core/src/Contracts/Country.php | 7 ++++ .../Core/src/Contracts/CountryState.php | 7 ++++ .../Webkul/Core/src/Contracts/Currency.php | 7 ++++ .../src/Contracts/CurrencyExchangeRate.php | 7 ++++ packages/Webkul/Core/src/Contracts/Locale.php | 7 ++++ packages/Webkul/Core/src/Contracts/Slider.php | 7 ++++ .../Core/src/Contracts/SubscribersList.php | 7 ++++ .../Webkul/Core/src/Contracts/TaxCategory.php | 7 ++++ packages/Webkul/Core/src/Contracts/TaxMap.php | 7 ++++ .../Webkul/Core/src/Contracts/TaxRate.php | 7 ++++ packages/Webkul/Core/src/Models/Channel.php | 21 ++++++------ .../Webkul/Core/src/Models/ChannelProxy.php | 10 ++++++ .../Webkul/Core/src/Models/CoreConfig.php | 3 +- .../Core/src/Models/CoreConfigProxy.php | 10 ++++++ packages/Webkul/Core/src/Models/Country.php | 3 +- .../Webkul/Core/src/Models/CountryProxy.php | 10 ++++++ .../Webkul/Core/src/Models/CountryState.php | 4 ++- .../Core/src/Models/CountryStateProxy.php | 10 ++++++ packages/Webkul/Core/src/Models/Currency.php | 6 ++-- .../Core/src/Models/CurrencyExchangeRate.php | 3 +- .../src/Models/CurrencyExchangeRateProxy.php | 10 ++++++ .../Webkul/Core/src/Models/CurrencyProxy.php | 10 ++++++ packages/Webkul/Core/src/Models/Locale.php | 3 +- .../Webkul/Core/src/Models/LocaleProxy.php | 10 ++++++ packages/Webkul/Core/src/Models/Slider.php | 3 +- .../Webkul/Core/src/Models/SliderProxy.php | 10 ++++++ .../Core/src/Models/SubscribersList.php | 3 +- .../Core/src/Models/SubscribersListProxy.php | 10 ++++++ .../Webkul/Core/src/Models/TaxCategory.php | 5 +-- .../Core/src/Models/TaxCategoryProxy.php | 10 ++++++ packages/Webkul/Core/src/Models/TaxMap.php | 3 +- .../Webkul/Core/src/Models/TaxMapProxy.php | 10 ++++++ packages/Webkul/Core/src/Models/TaxRate.php | 5 +-- .../Webkul/Core/src/Models/TaxRateProxy.php | 10 ++++++ .../src/Providers/CoreServiceProvider.php | 6 ++-- .../src/Providers/ModuleServiceProvider.php | 23 +++++++++++++ .../src/Repositories/ChannelRepository.php | 2 +- .../src/Repositories/CoreConfigRepository.php | 2 +- .../src/Repositories/CountryRepository.php | 2 +- .../Repositories/CountryStateRepository.php | 2 +- .../src/Repositories/CurrencyRepository.php | 2 +- .../Repositories/ExchangeRateRepository.php | 6 ++-- .../src/Repositories/LocaleRepository.php | 6 ++-- .../src/Repositories/SliderRepository.php | 2 +- .../SubscribersListRepository.php | 2 +- .../Customer/src/Contracts/Customer.php | 7 ++++ .../src/Contracts/CustomerAddress.php | 7 ++++ .../Customer/src/Contracts/CustomerGroup.php | 7 ++++ .../Customer/src/Contracts/Wishlist.php | 7 ++++ .../Webkul/Customer/src/Models/Customer.php | 27 ++++++++------- .../Customer/src/Models/CustomerAddress.php | 3 +- .../src/Models/CustomerAddressProxy.php | 10 ++++++ .../Customer/src/Models/CustomerGroup.php | 6 ++-- .../src/Models/CustomerGroupProxy.php | 10 ++++++ .../Customer/src/Models/CustomerProxy.php | 10 ++++++ .../Webkul/Customer/src/Models/Wishlist.php | 7 ++-- .../Customer/src/Models/WishlistProxy.php | 10 ++++++ .../src/Providers/CustomerServiceProvider.php | 2 ++ .../src/Providers/ModuleServiceProvider.php | 15 +++++++++ .../CustomerAddressRepository.php | 2 +- .../Repositories/CustomerGroupRepository.php | 2 +- .../src/Repositories/CustomerRepository.php | 2 +- .../src/Repositories/WishlistRepository.php | 2 +- .../src/Contracts/InventorySource.php | 7 ++++ .../Inventory/src/Models/InventorySource.php | 3 +- .../src/Models/InventorySourceProxy.php | 10 ++++++ .../Providers/InventoryServiceProvider.php | 2 ++ .../src/Providers/ModuleServiceProvider.php | 12 +++++++ .../InventorySourceRepository.php | 6 ++-- .../src/Contracts/Criteria/ProductFlat.php | 0 .../Webkul/Product/src/Contracts/Product.php | 7 ++++ .../src/Contracts/ProductAttributeValue.php | 7 ++++ .../Product/src/Contracts/ProductFlat.php | 7 ++++ .../Product/src/Contracts/ProductGrid.php | 7 ++++ .../Product/src/Contracts/ProductImage.php | 7 ++++ .../src/Contracts/ProductInventory.php | 7 ++++ .../src/Contracts/ProductOrderedInventory.php | 7 ++++ .../Product/src/Contracts/ProductReview.php | 7 ++++ .../src/Contracts/ProductSalableInventory.php | 7 ++++ .../Webkul/Product/src/Models/Product.php | 33 +++++++++---------- .../src/Models/ProductAttributeValue.php | 14 ++++---- .../src/Models/ProductAttributeValueProxy.php | 10 ++++++ .../Webkul/Product/src/Models/ProductFlat.php | 5 +-- .../Product/src/Models/ProductFlatProxy.php | 10 ++++++ .../Webkul/Product/src/Models/ProductGrid.php | 5 +-- .../Product/src/Models/ProductGridProxy.php | 10 ++++++ .../Product/src/Models/ProductImage.php | 8 ++--- .../Product/src/Models/ProductImageProxy.php | 10 ++++++ .../Product/src/Models/ProductInventory.php | 11 ++++--- .../src/Models/ProductInventoryProxy.php | 10 ++++++ .../src/Models/ProductOrderedInventory.php | 11 ++++--- .../Models/ProductOrderedInventoryProxy.php | 10 ++++++ .../Product/src/Models/ProductProxy.php | 10 ++++++ .../Product/src/Models/ProductReview.php | 9 ++--- .../Product/src/Models/ProductReviewProxy.php | 10 ++++++ .../src/Models/ProductSalableInventory.php | 11 ++++--- .../Models/ProductSalableInventoryProxy.php | 10 ++++++ .../src/Providers/ModuleServiceProvider.php | 20 +++++++++++ .../src/Providers/ProductServiceProvider.php | 2 ++ .../ProductAttributeValueRepository.php | 2 +- .../Repositories/ProductFlatRepository.php | 2 +- .../Repositories/ProductGridRepository.php | 2 +- .../Repositories/ProductImageRepository.php | 8 ++--- .../ProductInventoryRepository.php | 14 ++++---- .../src/Repositories/ProductRepository.php | 10 +++--- .../Repositories/ProductReviewRepository.php | 2 +- .../src/Repositories/SearchRepository.php | 2 +- .../Webkul/Tax/src/Contracts/TaxCategory.php | 7 ++++ packages/Webkul/Tax/src/Contracts/TaxMap.php | 7 ++++ packages/Webkul/Tax/src/Contracts/TaxRate.php | 7 ++++ .../Webkul/Tax/src/Models/TaxCategory.php | 7 ++-- .../Tax/src/Models/TaxCategoryProxy.php | 10 ++++++ packages/Webkul/Tax/src/Models/TaxMap.php | 3 +- .../Webkul/Tax/src/Models/TaxMapProxy.php | 10 ++++++ packages/Webkul/Tax/src/Models/TaxRate.php | 5 +-- .../Webkul/Tax/src/Models/TaxRateProxy.php | 10 ++++++ .../src/Providers/ModuleServiceProvider.php | 14 ++++++++ .../Tax/src/Providers/TaxServiceProvider.php | 2 ++ .../Repositories/TaxCategoryRepository.php | 2 +- .../Tax/src/Repositories/TaxMapRepository.php | 2 +- .../src/Repositories/TaxRateRepository.php | 2 +- packages/Webkul/User/src/Contracts/Admin.php | 7 ++++ packages/Webkul/User/src/Contracts/Role.php | 7 ++++ packages/Webkul/User/src/Models/Admin.php | 5 +-- .../Webkul/User/src/Models/AdminProxy.php | 10 ++++++ packages/Webkul/User/src/Models/Role.php | 5 +-- packages/Webkul/User/src/Models/RoleProxy.php | 10 ++++++ .../src/Providers/ModuleServiceProvider.php | 13 ++++++++ .../src/Providers/UserServiceProvider.php | 2 ++ .../User/src/Repositories/AdminRepository.php | 6 ++-- .../User/src/Repositories/RoleRepository.php | 6 ++-- 186 files changed, 1155 insertions(+), 222 deletions(-) create mode 100644 packages/Webkul/Attribute/src/Contracts/Attribute.php create mode 100644 packages/Webkul/Attribute/src/Contracts/AttributeFamily.php create mode 100644 packages/Webkul/Attribute/src/Contracts/AttributeGroup.php create mode 100644 packages/Webkul/Attribute/src/Contracts/AttributeOption.php create mode 100644 packages/Webkul/Attribute/src/Contracts/AttributeOptionTranslation.php create mode 100644 packages/Webkul/Attribute/src/Contracts/AttributeTranslation.php create mode 100644 packages/Webkul/Attribute/src/Models/AttributeFamilyProxy.php create mode 100644 packages/Webkul/Attribute/src/Models/AttributeGroupProxy.php create mode 100644 packages/Webkul/Attribute/src/Models/AttributeOptionProxy.php create mode 100644 packages/Webkul/Attribute/src/Models/AttributeOptionTranslationProxy.php create mode 100644 packages/Webkul/Attribute/src/Models/AttributeProxy.php create mode 100644 packages/Webkul/Attribute/src/Models/AttributeTranslationProxy.php create mode 100644 packages/Webkul/Attribute/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/Category/src/Contracts/Category.php create mode 100644 packages/Webkul/Category/src/Contracts/CategoryTranslation.php create mode 100644 packages/Webkul/Category/src/Models/CategoryProxy.php create mode 100644 packages/Webkul/Category/src/Models/CategoryTranslationProxy.php create mode 100644 packages/Webkul/Category/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/Checkout/src/Contracts/Cart.php create mode 100644 packages/Webkul/Checkout/src/Contracts/CartAddress.php create mode 100644 packages/Webkul/Checkout/src/Contracts/CartItem.php create mode 100644 packages/Webkul/Checkout/src/Contracts/CartPayment.php create mode 100644 packages/Webkul/Checkout/src/Contracts/CartShippingRate.php create mode 100644 packages/Webkul/Checkout/src/Models/CartAddressProxy.php create mode 100644 packages/Webkul/Checkout/src/Models/CartItemProxy.php create mode 100644 packages/Webkul/Checkout/src/Models/CartPaymentProxy.php create mode 100644 packages/Webkul/Checkout/src/Models/CartProxy.php create mode 100644 packages/Webkul/Checkout/src/Models/CartShippingRateProxy.php create mode 100644 packages/Webkul/Checkout/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/Core/src/Contracts/Channel.php create mode 100644 packages/Webkul/Core/src/Contracts/CoreConfig.php create mode 100644 packages/Webkul/Core/src/Contracts/Country.php create mode 100644 packages/Webkul/Core/src/Contracts/CountryState.php create mode 100644 packages/Webkul/Core/src/Contracts/Currency.php create mode 100644 packages/Webkul/Core/src/Contracts/CurrencyExchangeRate.php create mode 100644 packages/Webkul/Core/src/Contracts/Locale.php create mode 100644 packages/Webkul/Core/src/Contracts/Slider.php create mode 100644 packages/Webkul/Core/src/Contracts/SubscribersList.php create mode 100644 packages/Webkul/Core/src/Contracts/TaxCategory.php create mode 100644 packages/Webkul/Core/src/Contracts/TaxMap.php create mode 100644 packages/Webkul/Core/src/Contracts/TaxRate.php create mode 100644 packages/Webkul/Core/src/Models/ChannelProxy.php create mode 100644 packages/Webkul/Core/src/Models/CoreConfigProxy.php create mode 100644 packages/Webkul/Core/src/Models/CountryProxy.php create mode 100644 packages/Webkul/Core/src/Models/CountryStateProxy.php create mode 100644 packages/Webkul/Core/src/Models/CurrencyExchangeRateProxy.php create mode 100644 packages/Webkul/Core/src/Models/CurrencyProxy.php create mode 100644 packages/Webkul/Core/src/Models/LocaleProxy.php create mode 100644 packages/Webkul/Core/src/Models/SliderProxy.php create mode 100644 packages/Webkul/Core/src/Models/SubscribersListProxy.php create mode 100644 packages/Webkul/Core/src/Models/TaxCategoryProxy.php create mode 100644 packages/Webkul/Core/src/Models/TaxMapProxy.php create mode 100644 packages/Webkul/Core/src/Models/TaxRateProxy.php create mode 100644 packages/Webkul/Core/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/Customer/src/Contracts/Customer.php create mode 100644 packages/Webkul/Customer/src/Contracts/CustomerAddress.php create mode 100644 packages/Webkul/Customer/src/Contracts/CustomerGroup.php create mode 100644 packages/Webkul/Customer/src/Contracts/Wishlist.php create mode 100644 packages/Webkul/Customer/src/Models/CustomerAddressProxy.php create mode 100644 packages/Webkul/Customer/src/Models/CustomerGroupProxy.php create mode 100644 packages/Webkul/Customer/src/Models/CustomerProxy.php create mode 100644 packages/Webkul/Customer/src/Models/WishlistProxy.php create mode 100644 packages/Webkul/Customer/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/Inventory/src/Contracts/InventorySource.php create mode 100644 packages/Webkul/Inventory/src/Models/InventorySourceProxy.php create mode 100644 packages/Webkul/Inventory/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/Product/src/Contracts/Criteria/ProductFlat.php create mode 100644 packages/Webkul/Product/src/Contracts/Product.php create mode 100644 packages/Webkul/Product/src/Contracts/ProductAttributeValue.php create mode 100644 packages/Webkul/Product/src/Contracts/ProductFlat.php create mode 100644 packages/Webkul/Product/src/Contracts/ProductGrid.php create mode 100644 packages/Webkul/Product/src/Contracts/ProductImage.php create mode 100644 packages/Webkul/Product/src/Contracts/ProductInventory.php create mode 100644 packages/Webkul/Product/src/Contracts/ProductOrderedInventory.php create mode 100644 packages/Webkul/Product/src/Contracts/ProductReview.php create mode 100644 packages/Webkul/Product/src/Contracts/ProductSalableInventory.php create mode 100644 packages/Webkul/Product/src/Models/ProductAttributeValueProxy.php create mode 100644 packages/Webkul/Product/src/Models/ProductFlatProxy.php create mode 100644 packages/Webkul/Product/src/Models/ProductGridProxy.php create mode 100644 packages/Webkul/Product/src/Models/ProductImageProxy.php create mode 100644 packages/Webkul/Product/src/Models/ProductInventoryProxy.php create mode 100644 packages/Webkul/Product/src/Models/ProductOrderedInventoryProxy.php create mode 100644 packages/Webkul/Product/src/Models/ProductProxy.php create mode 100644 packages/Webkul/Product/src/Models/ProductReviewProxy.php create mode 100644 packages/Webkul/Product/src/Models/ProductSalableInventoryProxy.php create mode 100644 packages/Webkul/Product/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/Tax/src/Contracts/TaxCategory.php create mode 100644 packages/Webkul/Tax/src/Contracts/TaxMap.php create mode 100644 packages/Webkul/Tax/src/Contracts/TaxRate.php create mode 100644 packages/Webkul/Tax/src/Models/TaxCategoryProxy.php create mode 100644 packages/Webkul/Tax/src/Models/TaxMapProxy.php create mode 100644 packages/Webkul/Tax/src/Models/TaxRateProxy.php create mode 100644 packages/Webkul/Tax/src/Providers/ModuleServiceProvider.php create mode 100644 packages/Webkul/User/src/Contracts/Admin.php create mode 100644 packages/Webkul/User/src/Contracts/Role.php create mode 100644 packages/Webkul/User/src/Models/AdminProxy.php create mode 100644 packages/Webkul/User/src/Models/RoleProxy.php create mode 100644 packages/Webkul/User/src/Providers/ModuleServiceProvider.php diff --git a/packages/Webkul/Attribute/src/Contracts/Attribute.php b/packages/Webkul/Attribute/src/Contracts/Attribute.php new file mode 100644 index 000000000..4a28b5761 --- /dev/null +++ b/packages/Webkul/Attribute/src/Contracts/Attribute.php @@ -0,0 +1,7 @@ +hasMany(AttributeOption::class); + return $this->hasMany(AttributeOptionProxy::modelClass()); } /** diff --git a/packages/Webkul/Attribute/src/Models/AttributeFamily.php b/packages/Webkul/Attribute/src/Models/AttributeFamily.php index 054bb547a..7146bf597 100755 --- a/packages/Webkul/Attribute/src/Models/AttributeFamily.php +++ b/packages/Webkul/Attribute/src/Models/AttributeFamily.php @@ -3,13 +3,13 @@ namespace Webkul\Attribute\Models; use Illuminate\Database\Eloquent\Model; -use Webkul\Attribute\Models\AttributeGroup; -use Webkul\Product\Models\Product; +use Webkul\Product\Models\ProductProxy; +use Webkul\Attribute\Contracts\AttributeFamily as AttributeFamilyContract; -class AttributeFamily extends Model +class AttributeFamily extends Model implements AttributeFamilyContract { public $timestamps = false; - + protected $fillable = ['code', 'name']; /** @@ -17,7 +17,7 @@ class AttributeFamily extends Model */ public function custom_attributes() { - return Attribute::join('attribute_group_mappings', 'attributes.id', '=', 'attribute_group_mappings.attribute_id') + return (AttributeProxy::modelClass())::join('attribute_group_mappings', 'attributes.id', '=', 'attribute_group_mappings.attribute_id') ->join('attribute_groups', 'attribute_group_mappings.attribute_group_id', '=', 'attribute_groups.id') ->join('attribute_families', 'attribute_groups.attribute_family_id', '=', 'attribute_families.id') ->where('attribute_families.id', $this->id) @@ -37,7 +37,7 @@ class AttributeFamily extends Model */ public function attribute_groups() { - return $this->hasMany(AttributeGroup::class)->orderBy('position'); + return $this->hasMany(AttributeGroupProxy::modelClass())->orderBy('position'); } /** @@ -53,6 +53,6 @@ class AttributeFamily extends Model */ public function products() { - return $this->hasMany(Product::class); + return $this->hasMany(ProductProxy::modelClass()); } } \ No newline at end of file diff --git a/packages/Webkul/Attribute/src/Models/AttributeFamilyProxy.php b/packages/Webkul/Attribute/src/Models/AttributeFamilyProxy.php new file mode 100644 index 000000000..3e6492a35 --- /dev/null +++ b/packages/Webkul/Attribute/src/Models/AttributeFamilyProxy.php @@ -0,0 +1,10 @@ +belongsToMany(Attribute::class, 'attribute_group_mappings') + return $this->belongsToMany(AttributeProxy::modelClass(), 'attribute_group_mappings') ->withPivot('position') ->orderBy('pivot_position', 'asc'); } diff --git a/packages/Webkul/Attribute/src/Models/AttributeGroupProxy.php b/packages/Webkul/Attribute/src/Models/AttributeGroupProxy.php new file mode 100644 index 000000000..09350d397 --- /dev/null +++ b/packages/Webkul/Attribute/src/Models/AttributeGroupProxy.php @@ -0,0 +1,10 @@ +loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->app->register(ModuleServiceProvider::class); } /** diff --git a/packages/Webkul/Attribute/src/Providers/ModuleServiceProvider.php b/packages/Webkul/Attribute/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..91b0d1c23 --- /dev/null +++ b/packages/Webkul/Attribute/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,17 @@ +attribute->findOneByField('code', $attribute['code']); } - + $attributeGroup->custom_attributes()->save($attributeModel, ['position' => $key + 1]); } } diff --git a/packages/Webkul/Attribute/src/Repositories/AttributeGroupRepository.php b/packages/Webkul/Attribute/src/Repositories/AttributeGroupRepository.php index 414a897ad..7f0bc0ed6 100755 --- a/packages/Webkul/Attribute/src/Repositories/AttributeGroupRepository.php +++ b/packages/Webkul/Attribute/src/Repositories/AttributeGroupRepository.php @@ -1,7 +1,7 @@ -all($attributeColumns); diff --git a/packages/Webkul/Category/src/Contracts/Category.php b/packages/Webkul/Category/src/Contracts/Category.php new file mode 100644 index 000000000..0ae4c9828 --- /dev/null +++ b/packages/Webkul/Category/src/Contracts/Category.php @@ -0,0 +1,7 @@ +loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->app->register(ModuleServiceProvider::class); } /** diff --git a/packages/Webkul/Category/src/Providers/ModuleServiceProvider.php b/packages/Webkul/Category/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..9ea41025f --- /dev/null +++ b/packages/Webkul/Category/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,13 @@ +hasMany(CartItem::class)->whereNull('parent_id'); + return $this->hasMany(CartItemProxy::modelClass())->whereNull('parent_id'); } /** * To get all the associated items with the cart instance even the parent and child items of configurable products */ public function all_items() { - return $this->hasMany(CartItem::class); + return $this->hasMany(CartItemProxy::modelClass()); } /** @@ -38,7 +35,7 @@ class Cart extends Model */ public function addresses() { - return $this->hasMany(CartAddress::class); + return $this->hasMany(CartAddressProxy::modelClass()); } /** @@ -78,7 +75,7 @@ class Cart extends Model */ public function shipping_rates() { - return $this->hasManyThrough(CartShippingRate::class, CartAddress::class, 'cart_id', 'cart_address_id'); + return $this->hasManyThrough(CartShippingRateProxy::modelClass(), CartAddressProxy::modelClass(), 'cart_id', 'cart_address_id'); } /** @@ -102,6 +99,6 @@ class Cart extends Model */ public function payment() { - return $this->hasOne(CartPayment::class); + return $this->hasOne(CartPaymentProxy::modelClass()); } } \ No newline at end of file diff --git a/packages/Webkul/Checkout/src/Models/CartAddress.php b/packages/Webkul/Checkout/src/Models/CartAddress.php index b80c3215e..019717cae 100755 --- a/packages/Webkul/Checkout/src/Models/CartAddress.php +++ b/packages/Webkul/Checkout/src/Models/CartAddress.php @@ -3,9 +3,9 @@ namespace Webkul\Checkout\Models; use Illuminate\Database\Eloquent\Model; -use Webkul\Checkout\Models\CartShippingRate; +use Webkul\Checkout\Contracts\CartAddress as CartAddressContract; -class CartAddress extends Model +class CartAddress extends Model implements CartAddressContract { protected $table = 'cart_address'; @@ -16,7 +16,7 @@ class CartAddress extends Model */ public function shipping_rates() { - return $this->hasMany(CartShippingRate::class); + return $this->hasMany(CartShippingRateProxy::modelClass()); } /** diff --git a/packages/Webkul/Checkout/src/Models/CartAddressProxy.php b/packages/Webkul/Checkout/src/Models/CartAddressProxy.php new file mode 100644 index 000000000..7ae3f6b44 --- /dev/null +++ b/packages/Webkul/Checkout/src/Models/CartAddressProxy.php @@ -0,0 +1,10 @@ +hasOne(Product::class, 'id', 'product_id'); + return $this->hasOne(ProductProxy::modelClass(), 'id', 'product_id'); } public function cart() { - return $this->hasOne(Cart::class, 'id', 'cart_id'); + return $this->hasOne(CartProxy::modelClass(), 'id', 'cart_id'); } /** diff --git a/packages/Webkul/Checkout/src/Models/CartItemProxy.php b/packages/Webkul/Checkout/src/Models/CartItemProxy.php new file mode 100644 index 000000000..ac5af959c --- /dev/null +++ b/packages/Webkul/Checkout/src/Models/CartItemProxy.php @@ -0,0 +1,10 @@ +belongsTo(CartAddress::class); + return $this->belongsTo(CartAddressProxy::modelClass()); } } \ No newline at end of file diff --git a/packages/Webkul/Checkout/src/Models/CartShippingRateProxy.php b/packages/Webkul/Checkout/src/Models/CartShippingRateProxy.php new file mode 100644 index 000000000..3ba6db1b1 --- /dev/null +++ b/packages/Webkul/Checkout/src/Models/CartShippingRateProxy.php @@ -0,0 +1,10 @@ +loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->app->register(ModuleServiceProvider::class); } /** diff --git a/packages/Webkul/Checkout/src/Providers/ModuleServiceProvider.php b/packages/Webkul/Checkout/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..cb3af6099 --- /dev/null +++ b/packages/Webkul/Checkout/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,16 @@ +belongsToMany(Locale::class, 'channel_locales'); + return $this->belongsToMany(LocaleProxy::modelClass(), 'channel_locales'); } /** @@ -26,7 +25,7 @@ class Channel extends Model */ public function default_locale() { - return $this->belongsTo(Locale::class); + return $this->belongsTo(LocaleProxy::modelClass()); } /** @@ -34,7 +33,7 @@ class Channel extends Model */ public function currencies() { - return $this->belongsToMany(Currency::class, 'channel_currencies'); + return $this->belongsToMany(CurrencyProxy::modelClass(), 'channel_currencies'); } /** @@ -42,7 +41,7 @@ class Channel extends Model */ public function inventory_sources() { - return $this->belongsToMany(InventorySource::class, 'channel_inventory_sources'); + return $this->belongsToMany(InventorySourceProxy::modelClass(), 'channel_inventory_sources'); } @@ -53,7 +52,7 @@ class Channel extends Model */ public function base_currency() { - return $this->belongsTo(Currency::class); + return $this->belongsTo(CurrencyProxy::modelClass()); } /** @@ -61,7 +60,7 @@ class Channel extends Model */ public function root_category() { - return $this->belongsTo(Category::class, 'root_category_id'); + return $this->belongsTo(CategoryProxy::modelClass(), 'root_category_id'); } /** diff --git a/packages/Webkul/Core/src/Models/ChannelProxy.php b/packages/Webkul/Core/src/Models/ChannelProxy.php new file mode 100644 index 000000000..1bb09734d --- /dev/null +++ b/packages/Webkul/Core/src/Models/ChannelProxy.php @@ -0,0 +1,10 @@ +hasOne(CurrencyExchangeRate::class, 'target_currency'); + return $this->hasOne(CurrencyExchangeRateProxy::modelClass(), 'target_currency'); } } \ No newline at end of file diff --git a/packages/Webkul/Core/src/Models/CurrencyExchangeRate.php b/packages/Webkul/Core/src/Models/CurrencyExchangeRate.php index 0bf84d707..075585ee1 100755 --- a/packages/Webkul/Core/src/Models/CurrencyExchangeRate.php +++ b/packages/Webkul/Core/src/Models/CurrencyExchangeRate.php @@ -3,8 +3,9 @@ namespace Webkul\Core\Models; use Illuminate\Database\Eloquent\Model; +use Webkul\Core\Contracts\CurrencyExchangeRate as CurrencyExchangeRateContract; -class CurrencyExchangeRate extends Model +class CurrencyExchangeRate extends Model implements CurrencyExchangeRateContract { /** * The attributes that are mass assignable. diff --git a/packages/Webkul/Core/src/Models/CurrencyExchangeRateProxy.php b/packages/Webkul/Core/src/Models/CurrencyExchangeRateProxy.php new file mode 100644 index 000000000..af25e5bbf --- /dev/null +++ b/packages/Webkul/Core/src/Models/CurrencyExchangeRateProxy.php @@ -0,0 +1,10 @@ +belongsToMany(TaxRate::class, 'tax_categories_tax_rates', 'tax_category_id')->withPivot('id'); + return $this->belongsToMany(TaxRateProxy::modelClass(), 'tax_categories_tax_rates', 'tax_category_id')->withPivot('id'); } } \ No newline at end of file diff --git a/packages/Webkul/Core/src/Models/TaxCategoryProxy.php b/packages/Webkul/Core/src/Models/TaxCategoryProxy.php new file mode 100644 index 000000000..01df18f7d --- /dev/null +++ b/packages/Webkul/Core/src/Models/TaxCategoryProxy.php @@ -0,0 +1,10 @@ +belongsToMany(TaxCategory::class, 'tax_categories_tax_rates', 'tax_rate_id', 'id'); + return $this->belongsToMany(TaxCategoryProxy::modelClass(), 'tax_categories_tax_rates', 'tax_rate_id', 'id'); } } \ No newline at end of file diff --git a/packages/Webkul/Core/src/Models/TaxRateProxy.php b/packages/Webkul/Core/src/Models/TaxRateProxy.php new file mode 100644 index 000000000..d7ff30546 --- /dev/null +++ b/packages/Webkul/Core/src/Models/TaxRateProxy.php @@ -0,0 +1,10 @@ +loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'core'); Validator::extend('slug', 'Webkul\Core\Contracts\Validations\Slug@passes'); - + Validator::extend('code', 'Webkul\Core\Contracts\Validations\Code@passes'); Validator::extend('decimal', 'Webkul\Core\Contracts\Validations\Decimal@passes'); + + $this->app->register(ModuleServiceProvider::class); } - + /** * Register services. * diff --git a/packages/Webkul/Core/src/Providers/ModuleServiceProvider.php b/packages/Webkul/Core/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..88d8f4c99 --- /dev/null +++ b/packages/Webkul/Core/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,23 @@ +belongsTo(CustomerGroup::class); + return $this->belongsTo(CustomerGroupProxy::modelClass()); } /** @@ -52,7 +51,7 @@ class Customer extends Authenticatable */ public function addresses() { - return $this->hasMany(CustomerAddress::class, 'customer_id'); + return $this->hasMany(CustomerAddressProxy::modelClass(), 'customer_id'); } /** @@ -60,41 +59,41 @@ class Customer extends Authenticatable */ public function default_address() { - return $this->hasOne(CustomerAddress::class, 'customer_id')->where('default_address', 1); + return $this->hasOne(CustomerAddressProxy::modelClass(), 'customer_id')->where('default_address', 1); } /** * Customer's relation with wishlist items */ public function wishlist_items() { - return $this->hasMany(Wishlist::class, 'customer_id'); + return $this->hasMany(WishlistProxy::modelClass(), 'customer_id'); } /** * get all cart inactive cart instance of a customer */ public function all_carts() { - return $this->hasMany(Cart::class, 'customer_id'); + return $this->hasMany(CartProxy::modelClass(), 'customer_id'); } /** * get inactive cart inactive cart instance of a customer */ public function inactive_carts() { - return $this->hasMany(Cart::class, 'customer_id')->where('is_active', 0); + return $this->hasMany(CartProxy::modelClass(), 'customer_id')->where('is_active', 0); } /** * get active cart inactive cart instance of a customer */ public function active_carts() { - return $this->hasMany(Cart::class, 'customer_id')->where('is_active', 1); + return $this->hasMany(CartProxy::modelClass(), 'customer_id')->where('is_active', 1); } /** * get all reviews of a customer */ public function all_reviews() { - return $this->hasMany(ProductReview::class, 'customer_id'); + return $this->hasMany(ProductReviewProxy::modelClass(), 'customer_id'); } } diff --git a/packages/Webkul/Customer/src/Models/CustomerAddress.php b/packages/Webkul/Customer/src/Models/CustomerAddress.php index b41886250..04220a07c 100755 --- a/packages/Webkul/Customer/src/Models/CustomerAddress.php +++ b/packages/Webkul/Customer/src/Models/CustomerAddress.php @@ -2,8 +2,9 @@ namespace Webkul\Customer\Models; use Illuminate\Database\Eloquent\Model; +use Webkul\Customer\Contracts\CustomerAddress as CustomerAddressContract; -class CustomerAddress extends Model +class CustomerAddress extends Model implements CustomerAddressContract { protected $table = 'customer_addresses'; diff --git a/packages/Webkul/Customer/src/Models/CustomerAddressProxy.php b/packages/Webkul/Customer/src/Models/CustomerAddressProxy.php new file mode 100644 index 000000000..9649519fe --- /dev/null +++ b/packages/Webkul/Customer/src/Models/CustomerAddressProxy.php @@ -0,0 +1,10 @@ +hasMany(Customer::class); + return $this->hasMany(CustomerProxy::modelClass()); } } diff --git a/packages/Webkul/Customer/src/Models/CustomerGroupProxy.php b/packages/Webkul/Customer/src/Models/CustomerGroupProxy.php new file mode 100644 index 000000000..04bd610d6 --- /dev/null +++ b/packages/Webkul/Customer/src/Models/CustomerGroupProxy.php @@ -0,0 +1,10 @@ +hasOne(Product::class, 'id', 'product_id'); + return $this->hasOne(ProductProxy::modelClass(), 'id', 'product_id'); } } diff --git a/packages/Webkul/Customer/src/Models/WishlistProxy.php b/packages/Webkul/Customer/src/Models/WishlistProxy.php new file mode 100644 index 000000000..fea4acb1c --- /dev/null +++ b/packages/Webkul/Customer/src/Models/WishlistProxy.php @@ -0,0 +1,10 @@ +loadMigrationsFrom(__DIR__ . '/../Database/migrations'); $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'customer'); + + $this->app->register(ModuleServiceProvider::class); } } diff --git a/packages/Webkul/Customer/src/Providers/ModuleServiceProvider.php b/packages/Webkul/Customer/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..4280411fc --- /dev/null +++ b/packages/Webkul/Customer/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,15 @@ +loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->app->register(ModuleServiceProvider::class); } /** diff --git a/packages/Webkul/Inventory/src/Providers/ModuleServiceProvider.php b/packages/Webkul/Inventory/src/Providers/ModuleServiceProvider.php new file mode 100644 index 000000000..5d9b7d661 --- /dev/null +++ b/packages/Webkul/Inventory/src/Providers/ModuleServiceProvider.php @@ -0,0 +1,12 @@ +belongsTo(AttributeFamily::class); + return $this->belongsTo(AttributeFamilyProxy::modelClass()); } /** @@ -33,7 +30,7 @@ class Product extends Model */ public function attribute_values() { - return $this->hasMany(ProductAttributeValue::class); + return $this->hasMany(ProductAttributeValueProxy::modelClass()); } /** @@ -49,7 +46,7 @@ class Product extends Model */ public function reviews() { - return $this->hasMany(ProductReview::class); + return $this->hasMany(ProductReviewProxy::modelClass()); } /** @@ -65,7 +62,7 @@ class Product extends Model */ public function categories() { - return $this->belongsToMany(Category::class, 'product_categories'); + return $this->belongsToMany(CategoryProxy::modelClass(), 'product_categories'); } /** @@ -73,7 +70,7 @@ class Product extends Model */ public function inventories() { - return $this->hasMany(ProductInventory::class, 'product_id'); + return $this->hasMany(ProductInventoryProxy::modelClass(), 'product_id'); } /** @@ -81,7 +78,7 @@ class Product extends Model */ public function ordered_inventories() { - return $this->hasMany(ProductOrderedInventory::class, 'product_id'); + return $this->hasMany(ProductOrderedInventoryProxy::modelClass(), 'product_id'); } /** @@ -89,7 +86,7 @@ class Product extends Model */ public function inventory_sources() { - return $this->belongsToMany(InventorySource::class, 'product_inventories')->withPivot('id', 'qty'); + return $this->belongsToMany(InventorySourceProxy::modelClass(), 'product_inventories')->withPivot('id', 'qty'); } /** @@ -97,7 +94,7 @@ class Product extends Model */ public function super_attributes() { - return $this->belongsToMany(Attribute::class, 'product_super_attributes'); + return $this->belongsToMany(AttributeProxy::modelClass(), 'product_super_attributes'); } /** @@ -105,7 +102,7 @@ class Product extends Model */ public function images() { - return $this->hasMany(ProductImage::class, 'product_id'); + return $this->hasMany(ProductImageProxy::modelClass(), 'product_id'); } /** diff --git a/packages/Webkul/Product/src/Models/ProductAttributeValue.php b/packages/Webkul/Product/src/Models/ProductAttributeValue.php index eea93401d..58b3c98b0 100755 --- a/packages/Webkul/Product/src/Models/ProductAttributeValue.php +++ b/packages/Webkul/Product/src/Models/ProductAttributeValue.php @@ -3,11 +3,11 @@ namespace Webkul\Product\Models; use Illuminate\Database\Eloquent\Model; -use Webkul\Attribute\Models\Attribute; -use Webkul\Product\Models\Product; -use Webkul\Channel\Models\Channel; +use Webkul\Attribute\Models\AttributeProxy; +use Webkul\Channel\Models\ChannelProxy; +use Webkul\Product\Contracts\ProductAttributeValue as ProductAttributeValueContract; -class ProductAttributeValue extends Model +class ProductAttributeValue extends Model implements ProductAttributeValueContract { public $timestamps = false; @@ -47,7 +47,7 @@ class ProductAttributeValue extends Model */ public function attribute() { - return $this->belongsTo(Attribute::class); + return $this->belongsTo(AttributeProxy::modelClass()); } /** @@ -55,7 +55,7 @@ class ProductAttributeValue extends Model */ public function product() { - return $this->belongsTo(Product::class); + return $this->belongsTo(ProductProxy::modelClass()); } /** @@ -63,6 +63,6 @@ class ProductAttributeValue extends Model */ public function channel() { - return $this->belongsTo(Channel::class); + return $this->belongsTo(ChannelProxy::modelClass()); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Models/ProductAttributeValueProxy.php b/packages/Webkul/Product/src/Models/ProductAttributeValueProxy.php new file mode 100644 index 000000000..9c3598eb9 --- /dev/null +++ b/packages/Webkul/Product/src/Models/ProductAttributeValueProxy.php @@ -0,0 +1,10 @@ +belongsTo(Product::class); + return $this->belongsTo(ProductProxy::modelClass()); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Models/ProductFlatProxy.php b/packages/Webkul/Product/src/Models/ProductFlatProxy.php new file mode 100644 index 000000000..2d461b427 --- /dev/null +++ b/packages/Webkul/Product/src/Models/ProductFlatProxy.php @@ -0,0 +1,10 @@ +belongsTo(Product::class, 'product_id'); + return $this->belongsTo(ProductProxy::modelClass(), 'product_id'); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Models/ProductGridProxy.php b/packages/Webkul/Product/src/Models/ProductGridProxy.php new file mode 100644 index 000000000..e80da1675 --- /dev/null +++ b/packages/Webkul/Product/src/Models/ProductGridProxy.php @@ -0,0 +1,10 @@ +belongsTo(Product::class); + return $this->belongsTo(ProductProxy::modelClass()); } /** @@ -35,7 +35,7 @@ class ProductImage extends Model { return $this->url(); } - + /** * @param string $key * diff --git a/packages/Webkul/Product/src/Models/ProductImageProxy.php b/packages/Webkul/Product/src/Models/ProductImageProxy.php new file mode 100644 index 000000000..158b91121 --- /dev/null +++ b/packages/Webkul/Product/src/Models/ProductImageProxy.php @@ -0,0 +1,10 @@ +belongsTo(InventorySource::class); + return $this->belongsTo(InventorySourceProxy::modelClass()); } /** @@ -24,6 +25,6 @@ class ProductInventory extends Model */ public function product() { - return $this->belongsTo(Product::class); + return $this->belongsTo(ProductProxy::modelClass()); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Models/ProductInventoryProxy.php b/packages/Webkul/Product/src/Models/ProductInventoryProxy.php new file mode 100644 index 000000000..77bdd32e5 --- /dev/null +++ b/packages/Webkul/Product/src/Models/ProductInventoryProxy.php @@ -0,0 +1,10 @@ +belongsTo(Channel::class); + return $this->belongsTo(ChannelProxy::modelClass()); } /** @@ -25,6 +26,6 @@ class ProductOrderedInventory extends Model */ public function product() { - return $this->belongsTo(Product::class); + return $this->belongsTo(ProductProxy::modelClass()); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Models/ProductOrderedInventoryProxy.php b/packages/Webkul/Product/src/Models/ProductOrderedInventoryProxy.php new file mode 100644 index 000000000..78dd084d5 --- /dev/null +++ b/packages/Webkul/Product/src/Models/ProductOrderedInventoryProxy.php @@ -0,0 +1,10 @@ +belongsTo(Customer::class); + return $this->belongsTo(CustomerProxy::modelClass()); } /** @@ -23,6 +24,6 @@ class ProductReview extends Model */ public function product() { - return $this->belongsTo(Product::class); + return $this->belongsTo(ProductProxy::modelClass()); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Models/ProductReviewProxy.php b/packages/Webkul/Product/src/Models/ProductReviewProxy.php new file mode 100644 index 000000000..5df262a64 --- /dev/null +++ b/packages/Webkul/Product/src/Models/ProductReviewProxy.php @@ -0,0 +1,10 @@ +belongsTo(Channel::class); + return $this->belongsTo(ChannelProxy::modelClass()); } - + // /** // * Get the inventory source owns the product. // */ @@ -33,6 +34,6 @@ class ProductSalableInventory extends Model */ public function product() { - return $this->belongsTo(Product::class); + return $this->belongsTo(ProductProxy::modelClass()); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Models/ProductSalableInventoryProxy.php b/packages/Webkul/Product/src/Models/ProductSalableInventoryProxy.php new file mode 100644 index 000000000..95c25ccf0 --- /dev/null +++ b/packages/Webkul/Product/src/Models/ProductSalableInventoryProxy.php @@ -0,0 +1,10 @@ +loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); $this->app->register(EventServiceProvider::class); + + $this->app->register(ModuleServiceProvider::class); } /** diff --git a/packages/Webkul/Product/src/Repositories/ProductAttributeValueRepository.php b/packages/Webkul/Product/src/Repositories/ProductAttributeValueRepository.php index f237f0240..307531c7f 100755 --- a/packages/Webkul/Product/src/Repositories/ProductAttributeValueRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductAttributeValueRepository.php @@ -42,7 +42,7 @@ class ProductAttributeValueRepository extends Repository */ function model() { - return 'Webkul\Product\Models\ProductAttributeValue'; + return 'Webkul\Product\Contracts\ProductAttributeValue'; } /** diff --git a/packages/Webkul/Product/src/Repositories/ProductFlatRepository.php b/packages/Webkul/Product/src/Repositories/ProductFlatRepository.php index db229e966..d62edcc6e 100644 --- a/packages/Webkul/Product/src/Repositories/ProductFlatRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductFlatRepository.php @@ -38,6 +38,6 @@ class ProductFlatRepository extends Repository public function model() { - return 'Webkul\Product\Models\ProductFlat'; + return 'Webkul\Product\Contracts\ProductFlat'; } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Repositories/ProductGridRepository.php b/packages/Webkul/Product/src/Repositories/ProductGridRepository.php index 9a17c80e7..fdeab8190 100755 --- a/packages/Webkul/Product/src/Repositories/ProductGridRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductGridRepository.php @@ -39,7 +39,7 @@ class ProductGridRepository extends Repository } public function model() { - return 'Webkul\Product\Models\ProductGrid'; + return 'Webkul\Product\Contracts\ProductGrid'; } public function updateWhere($product) { diff --git a/packages/Webkul/Product/src/Repositories/ProductImageRepository.php b/packages/Webkul/Product/src/Repositories/ProductImageRepository.php index 608674404..1fa11edf9 100755 --- a/packages/Webkul/Product/src/Repositories/ProductImageRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductImageRepository.php @@ -1,7 +1,7 @@ -type == 'configurable') return; - + if (isset($data['inventories'])) { foreach ($data['inventories'] as $inventorySourceId => $qty) { if (is_null($qty)) { @@ -44,8 +44,8 @@ class ProductInventoryRepository extends Repository 'inventory_source_id' => $inventorySourceId, 'vendor_id' => isset($data['vendor_id']) ? $data['vendor_id'] : 0 ]); - - + + if ($productInventory) { $productInventory->qty = $qty; diff --git a/packages/Webkul/Product/src/Repositories/ProductRepository.php b/packages/Webkul/Product/src/Repositories/ProductRepository.php index b7ae59d29..f8f2db446 100755 --- a/packages/Webkul/Product/src/Repositories/ProductRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductRepository.php @@ -94,7 +94,7 @@ class ProductRepository extends Repository */ function model() { - return 'Webkul\Product\Models\Product'; + return 'Webkul\Product\Contracts\Product'; } /** @@ -189,7 +189,7 @@ class ProductRepository extends Repository if (isset($data['categories'])) { $product->categories()->sync($data['categories']); } - + $previousVariantIds = $product->variants->pluck('id'); if (isset($data['variants'])) { @@ -389,7 +389,7 @@ class ProductRepository extends Repository foreach ($superAttributeCodes as $attributeCode) { if (! isset($data[$attributeCode])) return false; - + if ($data[$attributeCode] == $variant->{$attributeCode}) $matchCount++; } @@ -417,10 +417,10 @@ class ProductRepository extends Repository $qb = $query->distinct() ->addSelect('product_flat.*') - ->addSelect(DB::raw('IF( product_flat.special_price_from IS NOT NULL + ->addSelect(DB::raw('IF( product_flat.special_price_from IS NOT NULL AND product_flat.special_price_to IS NOT NULL , IF( NOW( ) >= product_flat.special_price_from AND NOW( ) <= product_flat.special_price_to, IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , product_flat.price ) , IF( product_flat.special_price_from IS NULL , IF( product_flat.special_price_to IS NULL , IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , IF( NOW( ) <= product_flat.special_price_to, IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , product_flat.price ) ) , IF( product_flat.special_price_to IS NULL , IF( NOW( ) >= product_flat.special_price_from, IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , product_flat.price ) , product_flat.price ) ) ) AS price')) - + ->leftJoin('products', 'product_flat.product_id', '=', 'products.id') ->leftJoin('product_categories', 'products.id', '=', 'product_categories.product_id') ->where('product_flat.visible_individually', 1) diff --git a/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php b/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php index 8bfdd1eb4..29108509b 100755 --- a/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php @@ -43,7 +43,7 @@ class ProductReviewRepository extends Repository */ function model() { - return 'Webkul\Product\Models\ProductReview'; + return 'Webkul\Product\Contracts\ProductReview'; } /** diff --git a/packages/Webkul/Product/src/Repositories/SearchRepository.php b/packages/Webkul/Product/src/Repositories/SearchRepository.php index 7d61b5f79..255b4d7e6 100755 --- a/packages/Webkul/Product/src/Repositories/SearchRepository.php +++ b/packages/Webkul/Product/src/Repositories/SearchRepository.php @@ -30,7 +30,7 @@ class SearchRepository extends Repository function model() { - return 'Webkul\Product\Models\Product'; + return 'Webkul\Product\Contracts\Product'; } public function searchAttributes() { diff --git a/packages/Webkul/Tax/src/Contracts/TaxCategory.php b/packages/Webkul/Tax/src/Contracts/TaxCategory.php new file mode 100644 index 000000000..7366a8c63 --- /dev/null +++ b/packages/Webkul/Tax/src/Contracts/TaxCategory.php @@ -0,0 +1,7 @@ +belongsToMany(TaxRate::class, 'tax_categories_tax_rates', 'tax_category_id')->withPivot('id'); + return $this->belongsToMany(TaxRateProxy::modelClass(), 'tax_categories_tax_rates', 'tax_category_id')->withPivot('id'); } } \ No newline at end of file diff --git a/packages/Webkul/Tax/src/Models/TaxCategoryProxy.php b/packages/Webkul/Tax/src/Models/TaxCategoryProxy.php new file mode 100644 index 000000000..8465734fd --- /dev/null +++ b/packages/Webkul/Tax/src/Models/TaxCategoryProxy.php @@ -0,0 +1,10 @@ +belongsToMany(TaxCategory::class, 'tax_categories_tax_rates', 'tax_rate_id', 'id'); + return $this->belongsToMany(TaxCategoryProxy::modelClass(), 'tax_categories_tax_rates', 'tax_rate_id', 'id'); } } \ No newline at end of file diff --git a/packages/Webkul/Tax/src/Models/TaxRateProxy.php b/packages/Webkul/Tax/src/Models/TaxRateProxy.php new file mode 100644 index 000000000..db3c4c7f7 --- /dev/null +++ b/packages/Webkul/Tax/src/Models/TaxRateProxy.php @@ -0,0 +1,10 @@ +loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->app->register(ModuleServiceProvider::class); } /** diff --git a/packages/Webkul/Tax/src/Repositories/TaxCategoryRepository.php b/packages/Webkul/Tax/src/Repositories/TaxCategoryRepository.php index db854d1ee..546860bde 100755 --- a/packages/Webkul/Tax/src/Repositories/TaxCategoryRepository.php +++ b/packages/Webkul/Tax/src/Repositories/TaxCategoryRepository.php @@ -19,7 +19,7 @@ class TaxCategoryRepository extends Repository */ function model() { - return 'Webkul\Tax\Models\TaxCategory'; + return 'Webkul\Tax\Contracts\TaxCategory'; } public function attachOrDetach($taxCategory, $data) { diff --git a/packages/Webkul/Tax/src/Repositories/TaxMapRepository.php b/packages/Webkul/Tax/src/Repositories/TaxMapRepository.php index 37e72f788..da7e40d0f 100755 --- a/packages/Webkul/Tax/src/Repositories/TaxMapRepository.php +++ b/packages/Webkul/Tax/src/Repositories/TaxMapRepository.php @@ -19,7 +19,7 @@ class TaxMapRepository extends Repository */ function model() { - return 'Webkul\Tax\Models\TaxMap'; + return 'Webkul\Tax\Contracts\TaxMap'; } /** diff --git a/packages/Webkul/Tax/src/Repositories/TaxRateRepository.php b/packages/Webkul/Tax/src/Repositories/TaxRateRepository.php index 15f82bb03..f3eee77d1 100755 --- a/packages/Webkul/Tax/src/Repositories/TaxRateRepository.php +++ b/packages/Webkul/Tax/src/Repositories/TaxRateRepository.php @@ -19,6 +19,6 @@ class TaxRateRepository extends Repository */ function model() { - return 'Webkul\Tax\Models\TaxRate'; + return 'Webkul\Tax\Contracts\TaxRate'; } } \ No newline at end of file diff --git a/packages/Webkul/User/src/Contracts/Admin.php b/packages/Webkul/User/src/Contracts/Admin.php new file mode 100644 index 000000000..b0d26f31b --- /dev/null +++ b/packages/Webkul/User/src/Contracts/Admin.php @@ -0,0 +1,7 @@ +belongsTo(Role::class); + return $this->belongsTo(RoleProxy::modelClass()); } /** diff --git a/packages/Webkul/User/src/Models/AdminProxy.php b/packages/Webkul/User/src/Models/AdminProxy.php new file mode 100644 index 000000000..06721d054 --- /dev/null +++ b/packages/Webkul/User/src/Models/AdminProxy.php @@ -0,0 +1,10 @@ +hasMany(Admin::class); + return $this->hasMany(AdminProxy::modelClass()); } } diff --git a/packages/Webkul/User/src/Models/RoleProxy.php b/packages/Webkul/User/src/Models/RoleProxy.php new file mode 100644 index 000000000..e5e58dc85 --- /dev/null +++ b/packages/Webkul/User/src/Models/RoleProxy.php @@ -0,0 +1,10 @@ +aliasMiddleware('admin', BouncerMiddleware::class); $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->app->register(ModuleServiceProvider::class); } /** diff --git a/packages/Webkul/User/src/Repositories/AdminRepository.php b/packages/Webkul/User/src/Repositories/AdminRepository.php index ffa314510..673c1839e 100755 --- a/packages/Webkul/User/src/Repositories/AdminRepository.php +++ b/packages/Webkul/User/src/Repositories/AdminRepository.php @@ -1,7 +1,7 @@ -