From 25957f7d8b0989a95fe8b7b354532271e8e8f6a7 Mon Sep 17 00:00:00 2001 From: Brandon Shipley Date: Mon, 6 Oct 2025 23:21:50 -0700 Subject: [PATCH] default sku boolean to product skus table --- ...51006061008_AddDefaultSkuToProductSkus.php | 25 +++++++++++++++++++ src/Model/Table/ProductsTable.php | 7 ++++++ .../Model/Table/ProductsTableTest.php | 3 +++ 3 files changed, 35 insertions(+) create mode 100644 config/Migrations/20251006061008_AddDefaultSkuToProductSkus.php diff --git a/config/Migrations/20251006061008_AddDefaultSkuToProductSkus.php b/config/Migrations/20251006061008_AddDefaultSkuToProductSkus.php new file mode 100644 index 0000000..5740581 --- /dev/null +++ b/config/Migrations/20251006061008_AddDefaultSkuToProductSkus.php @@ -0,0 +1,25 @@ +table('product_skus'); + $table->addColumn('default_sku', 'boolean', [ + 'default' => false, + 'limit' => 11, + 'null' => false, + ]); + $table->update(); + } +} diff --git a/src/Model/Table/ProductsTable.php b/src/Model/Table/ProductsTable.php index 9515482..0f34c80 100644 --- a/src/Model/Table/ProductsTable.php +++ b/src/Model/Table/ProductsTable.php @@ -97,6 +97,13 @@ class ProductsTable extends Table 'dependent' => true, ]); + $this->hasOne('DefaultProductSkus', [ + 'foreignKey' => 'product_id', + 'conditions' => ['PrimaryProductSkus.default_sku' => true], + 'className' => 'CakeProducts.ProductSkus', + 'dependent' => true, + ]); + $this->getSchema()->setColumnType('product_type_id', EnumType::from(ProductProductTypeId::class)); $this->addBehavior('Muffin/Trash.Trash'); diff --git a/tests/TestCase/Model/Table/ProductsTableTest.php b/tests/TestCase/Model/Table/ProductsTableTest.php index f93f89a..54d3ea3 100644 --- a/tests/TestCase/Model/Table/ProductsTableTest.php +++ b/tests/TestCase/Model/Table/ProductsTableTest.php @@ -26,6 +26,8 @@ class ProductsTableTest extends TestCase protected array $fixtures = [ 'plugin.CakeProducts.Products', 'plugin.CakeProducts.ProductCategories', + 'plugin.CakeProducts.ProductSkus', + 'plugin.CakeProducts.ProductSkuVariantValues', ]; /** @@ -68,6 +70,7 @@ class ProductsTableTest extends TestCase 'ProductSkus', 'ProductPhotos', 'PrimaryProductPhotos', + 'DefaultProductSkus', ]; $associations = $this->Products->associations();