diff --git a/config/Migrations/20250629054627_CreateProductCategoryVariants.php b/config/Migrations/20250629054627_CreateProductCategoryVariants.php index c13eb00..7bf161f 100644 --- a/config/Migrations/20250629054627_CreateProductCategoryVariants.php +++ b/config/Migrations/20250629054627_CreateProductCategoryVariants.php @@ -32,11 +32,6 @@ class CreateProductCategoryVariants extends AbstractMigration 'default' => null, 'null' => true, ]); - $table->addColumn('variant_type_id', 'integer', [ - 'default' => null, - 'limit' => 11, - 'null' => false, - ]); $table->addColumn('enabled', 'boolean', [ 'default' => null, 'null' => false, diff --git a/src/Controller/ProductCategoryVariantsController.php b/src/Controller/ProductCategoryVariantsController.php index d48259e..9420db4 100644 --- a/src/Controller/ProductCategoryVariantsController.php +++ b/src/Controller/ProductCategoryVariantsController.php @@ -74,7 +74,7 @@ class ProductCategoryVariantsController extends AppController } $this->Flash->error(__('The product category variant could not be saved. Please, try again.')); } - $productCategories = $productCategoryVariantsTable->ProductCategories->find('list')->all(); + $productCategories = $productCategoryVariantsTable->ProductCategories->find('list', keyField: 'internal_id', valueField: 'name')->all(); $products = $productCategoryVariantsTable->Products->find('list')->all(); $this->set(compact('productCategoryVariant', 'productCategories', 'products')); } @@ -99,8 +99,8 @@ class ProductCategoryVariantsController extends AppController } $this->Flash->error(__('The product category variant could not be saved. Please, try again.')); } - $productCategories = $productCategoryVariantsTable->ProductCategories->find('list', limit: 200)->all(); - $products = $productCategoryVariantsTable->Products->find('list', limit: 200)->all(); + $productCategories = $productCategoryVariantsTable->ProductCategories->find('list', keyField: 'internal_id', valueField: 'name')->all(); + $products = $productCategoryVariantsTable->Products->find('list', limit: 200)->where(['product_category_id' => $productCategoryVariant->product_category_id])->all(); $this->set(compact('productCategoryVariant', 'productCategories', 'products')); } diff --git a/src/Model/Entity/ProductCategoryVariant.php b/src/Model/Entity/ProductCategoryVariant.php index 3a5987a..e589e06 100644 --- a/src/Model/Entity/ProductCategoryVariant.php +++ b/src/Model/Entity/ProductCategoryVariant.php @@ -3,6 +3,7 @@ declare(strict_types=1); namespace CakeProducts\Model\Entity; +use Cake\Datasource\EntityInterface; use Cake\ORM\Entity; /** @@ -12,11 +13,10 @@ use Cake\ORM\Entity; * @property string $name * @property string|null $product_category_id * @property string|null $product_id - * @property int $variant_type_id * @property bool $enabled * - * @property \App\Model\Entity\ProductCategory $product_category - * @property \App\Model\Entity\Product $product + * @property ProductCategory|EntityInterface $product_category + * @property Product|EntityInterface $product */ class ProductCategoryVariant extends Entity { @@ -33,9 +33,9 @@ class ProductCategoryVariant extends Entity 'name' => true, 'product_category_id' => true, 'product_id' => true, - 'variant_type_id' => true, 'enabled' => true, - 'product_category' => true, - 'product' => true, + // entities + 'product_category' => false, + 'product' => false, ]; } diff --git a/src/Model/Enum/ProductCategoryVariantTypeId.php b/src/Model/Enum/ProductCategoryVariantTypeId.php deleted file mode 100644 index 1f28cce..0000000 --- a/src/Model/Enum/ProductCategoryVariantTypeId.php +++ /dev/null @@ -1,21 +0,0 @@ - 'All Variant Combinations Created Automatically', - self::ManualAdd => 'Variants Manually Managed', - }; - } -} diff --git a/src/Model/Table/ProductCategoryVariantsTable.php b/src/Model/Table/ProductCategoryVariantsTable.php index 1eb44ac..261fc5b 100644 --- a/src/Model/Table/ProductCategoryVariantsTable.php +++ b/src/Model/Table/ProductCategoryVariantsTable.php @@ -3,13 +3,10 @@ declare(strict_types=1); namespace CakeProducts\Model\Table; -use Cake\Database\Type\EnumType; use Cake\ORM\Query\SelectQuery; use Cake\ORM\RulesChecker; use Cake\ORM\Table; use Cake\Validation\Validator; -use CakeProducts\Model\Enum\ProductCategoryAttributeTypeId; -use CakeProducts\Model\Enum\ProductCategoryVariantTypeId; /** * ProductCategoryVariants Model @@ -56,8 +53,6 @@ class ProductCategoryVariantsTable extends Table 'foreignKey' => 'product_id', 'className' => 'CakeProducts.Products', ]); - $this->getSchema()->setColumnType('variant_type_id', EnumType::from(ProductCategoryVariantTypeId::class)); - } /** @@ -82,11 +77,6 @@ class ProductCategoryVariantsTable extends Table ->uuid('product_id') ->allowEmptyString('product_id'); - $validator - ->integer('variant_type_id') - ->requirePresence('variant_type_id', 'create') - ->notEmptyString('variant_type_id'); - $validator ->boolean('enabled') ->requirePresence('enabled', 'create') diff --git a/templates/element/ProductCategoryVariants/form.php b/templates/element/ProductCategoryVariants/form.php index 43cd665..bfa9520 100644 --- a/templates/element/ProductCategoryVariants/form.php +++ b/templates/element/ProductCategoryVariants/form.php @@ -6,6 +6,5 @@ echo $this->Form->control('name'); echo $this->Form->control('product_category_id', ['options' => $productCategories, 'empty' => true]); echo $this->Form->control('product_id', ['options' => $products, 'empty' => true]); -echo $this->Form->control('variant_type_id'); echo $this->Form->control('enabled'); ?> \ No newline at end of file diff --git a/tests/Fixture/ProductCategoryVariantsFixture.php b/tests/Fixture/ProductCategoryVariantsFixture.php index 6b9d34a..4549766 100644 --- a/tests/Fixture/ProductCategoryVariantsFixture.php +++ b/tests/Fixture/ProductCategoryVariantsFixture.php @@ -23,7 +23,6 @@ class ProductCategoryVariantsFixture extends TestFixture 'name' => 'Color', 'product_category_id' => '6d223283-361b-4f9f-a7f1-c97aa0ca4c23', 'product_id' => null, - 'variant_type_id' => 1, 'enabled' => 1, ], [ @@ -31,9 +30,9 @@ class ProductCategoryVariantsFixture extends TestFixture 'name' => 'Color', 'product_category_id' => '6d223283-361b-4f9f-a7f1-c97aa0ca4c23', 'product_id' => 'cfc98a9a-29b2-44c8-b587-8156adc05317', - 'variant_type_id' => 1, 'enabled' => 1, ], + ]; parent::init(); } diff --git a/tests/TestCase/Controller/ProductCategoryVariantsControllerTest.php b/tests/TestCase/Controller/ProductCategoryVariantsControllerTest.php index fbc1e53..20a0930 100644 --- a/tests/TestCase/Controller/ProductCategoryVariantsControllerTest.php +++ b/tests/TestCase/Controller/ProductCategoryVariantsControllerTest.php @@ -152,7 +152,6 @@ class ProductCategoryVariantsControllerTest extends BaseControllerTest $data = [ 'name' => 'Size', 'product_category_id' => 'db4b4273-eddc-46d4-93c8-45cf7c6e058e', - 'variant_type_id' => 1, 'enabled' => true, ]; $this->post($url, $data); @@ -186,7 +185,6 @@ class ProductCategoryVariantsControllerTest extends BaseControllerTest $data = [ 'name' => '', 'product_category_id' => 'db4b4273-eddc-46d4-93c8-45cf7c6e058e', - 'variant_type_id' => 1, 'enabled' => true, ]; $this->post($url, $data); @@ -246,7 +244,6 @@ class ProductCategoryVariantsControllerTest extends BaseControllerTest // test new data here 'name' => 'updated name', 'product_category_id' => 'db4b4273-eddc-46d4-93c8-45cf7c6e058e', - 'variant_type_id' => 1, 'enabled' => true, ]; $this->put($url, $data); @@ -282,7 +279,6 @@ class ProductCategoryVariantsControllerTest extends BaseControllerTest $data = [ 'name' => '', 'product_category_id' => 'db4b4273-eddc-46d4-93c8-45cf7c6e058e', - 'variant_type_id' => 1, 'enabled' => true, ]; $this->put($url, $data);