default product type id on categories table

This commit is contained in:
2025-07-05 23:18:54 -07:00
parent 59a38758e9
commit 9d777f12b2
7 changed files with 68 additions and 8 deletions

View File

@@ -5,6 +5,7 @@ namespace CakeProducts\Model\Entity;
use Cake\I18n\DateTime;
use Cake\ORM\Entity;
use CakeProducts\Model\Enum\ProductProductTypeId;
/**
* Product Entity
@@ -12,11 +13,13 @@ use Cake\ORM\Entity;
* @property string $id
* @property string $name
* @property string $product_category_id
* @property \CakeProducts\Model\Enum\ProductProductTypeId $product_type_id
* @property ProductProductTypeId $product_type_id
* @property DateTime|null $deleted
*
* @property \CakeProducts\Model\Entity\ProductCategory $product_category
* @property \CakeProducts\Model\Entity\ProductAttribute[] $product_attributes
* @property ProductCategory $product_category
* @property ProductAttribute[] $product_attributes
* @property ProductCategoryVariant[] $product_category_variants
*
*/
class Product extends Entity
{
@@ -37,5 +40,6 @@ class Product extends Entity
// entities
'product_category' => false,
'product_attributes' => true,
'product_category_variants' => false,
];
}

View File

@@ -5,6 +5,7 @@ namespace CakeProducts\Model\Entity;
use Cake\I18n\DateTime;
use Cake\ORM\Entity;
use CakeProducts\Model\Enum\ProductProductTypeId;
/**
* ProductCategory Entity
@@ -19,6 +20,7 @@ use Cake\ORM\Entity;
* @property int $rght
* @property bool $enabled
* @property DateTime|null $deleted
* @property ProductProductTypeId|null $default_product_type_id
*
* @property \CakeProducts\Model\Entity\ProductCatalog $product_catalog
* @property \CakeProducts\Model\Entity\ParentProductCategory $parent_product_category
@@ -40,6 +42,7 @@ class ProductCategory extends Entity
'internal_id' => true,
'name' => true,
'category_description' => true,
'default_product_type_id' => true,
'parent_id' => true,
'lft' => true,
'rght' => true,

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace CakeProducts\Model\Table;
use Cake\Core\Configure;
use Cake\Database\Type\EnumType;
use Cake\Datasource\EntityInterface;
use Cake\Datasource\ResultSetInterface;
use Cake\ORM\Association\BelongsTo;
@@ -14,6 +15,7 @@ use Cake\ORM\RulesChecker;
use Cake\ORM\Table;
use Cake\Validation\Validator;
use CakeProducts\Model\Entity\ProductCategory;
use CakeProducts\Model\Enum\ProductProductTypeId;
use Closure;
use Psr\SimpleCache\CacheInterface;
@@ -99,6 +101,8 @@ class ProductCategoriesTable extends Table
'cascadeCallbacks' => true,
]);
$this->getSchema()->setColumnType('default_product_type_id', EnumType::from(ProductProductTypeId::class));
$this->behaviors()->Tree->setConfig('scope', ['product_catalog_id' => $this->treeCatalogId]);
$this->addBehavior('Muffin/Trash.Trash');
}
@@ -137,6 +141,10 @@ class ProductCategoriesTable extends Table
->dateTime('deleted')
->allowEmptyDateTime('deleted');
$validator
->integer('default_product_type_id')
->allowEmptyString('default_product_type_id');
return $validator;
}