1: <?php
2:
3: namespace Thelia\Model\map;
4:
5: use \RelationMap;
6: use \TableMap;
7:
8:
9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
21: class ProductTableMap extends TableMap
22: {
23:
24: 25: 26:
27: const CLASS_NAME = 'Thelia.Model.map.ProductTableMap';
28:
29: 30: 31: 32: 33: 34: 35:
36: public function initialize()
37: {
38:
39: $this->setName('product');
40: $this->setPhpName('Product');
41: $this->setClassname('Thelia\\Model\\Product');
42: $this->setPackage('Thelia.Model');
43: $this->setUseIdGenerator(true);
44:
45: $this->addPrimaryKey('ID', 'Id', 'INTEGER', true, null, null);
46: $this->addForeignKey('TAX_RULE_ID', 'TaxRuleId', 'INTEGER', 'tax_rule', 'ID', false, null, null);
47: $this->addColumn('REF', 'Ref', 'VARCHAR', true, 255, null);
48: $this->addColumn('PRICE', 'Price', 'FLOAT', true, null, null);
49: $this->addColumn('PRICE2', 'Price2', 'FLOAT', false, null, null);
50: $this->addColumn('ECOTAX', 'Ecotax', 'FLOAT', false, null, null);
51: $this->addColumn('NEWNESS', 'Newness', 'TINYINT', false, null, 0);
52: $this->addColumn('PROMO', 'Promo', 'TINYINT', false, null, 0);
53: $this->addColumn('STOCK', 'Stock', 'INTEGER', false, null, 0);
54: $this->addColumn('VISIBLE', 'Visible', 'TINYINT', true, null, 0);
55: $this->addColumn('WEIGHT', 'Weight', 'FLOAT', false, null, null);
56: $this->addColumn('POSITION', 'Position', 'INTEGER', true, null, null);
57: $this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null);
58: $this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null);
59: $this->addColumn('VERSION', 'Version', 'INTEGER', false, null, 0);
60: $this->addColumn('VERSION_CREATED_AT', 'VersionCreatedAt', 'TIMESTAMP', false, null, null);
61: $this->addColumn('VERSION_CREATED_BY', 'VersionCreatedBy', 'VARCHAR', false, 100, null);
62:
63: }
64:
65: 66: 67:
68: public function buildRelations()
69: {
70: $this->addRelation('TaxRule', 'Thelia\\Model\\TaxRule', RelationMap::MANY_TO_ONE, array('tax_rule_id' => 'id', ), 'SET NULL', 'RESTRICT');
71: $this->addRelation('ProductCategory', 'Thelia\\Model\\ProductCategory', RelationMap::ONE_TO_MANY, array('id' => 'product_id', ), 'CASCADE', 'RESTRICT', 'ProductCategorys');
72: $this->addRelation('FeatureProd', 'Thelia\\Model\\FeatureProd', RelationMap::ONE_TO_MANY, array('id' => 'product_id', ), 'CASCADE', 'RESTRICT', 'FeatureProds');
73: $this->addRelation('Stock', 'Thelia\\Model\\Stock', RelationMap::ONE_TO_MANY, array('id' => 'product_id', ), 'CASCADE', 'RESTRICT', 'Stocks');
74: $this->addRelation('ContentAssoc', 'Thelia\\Model\\ContentAssoc', RelationMap::ONE_TO_MANY, array('id' => 'product_id', ), 'CASCADE', 'RESTRICT', 'ContentAssocs');
75: $this->addRelation('Image', 'Thelia\\Model\\Image', RelationMap::ONE_TO_MANY, array('id' => 'product_id', ), 'CASCADE', 'RESTRICT', 'Images');
76: $this->addRelation('Document', 'Thelia\\Model\\Document', RelationMap::ONE_TO_MANY, array('id' => 'product_id', ), 'CASCADE', 'RESTRICT', 'Documents');
77: $this->addRelation('AccessoryRelatedByProductId', 'Thelia\\Model\\Accessory', RelationMap::ONE_TO_MANY, array('id' => 'product_id', ), 'CASCADE', 'RESTRICT', 'AccessorysRelatedByProductId');
78: $this->addRelation('AccessoryRelatedByAccessory', 'Thelia\\Model\\Accessory', RelationMap::ONE_TO_MANY, array('id' => 'accessory', ), 'CASCADE', 'RESTRICT', 'AccessorysRelatedByAccessory');
79: $this->addRelation('Rewriting', 'Thelia\\Model\\Rewriting', RelationMap::ONE_TO_MANY, array('id' => 'product_id', ), 'CASCADE', 'RESTRICT', 'Rewritings');
80: $this->addRelation('ProductI18n', 'Thelia\\Model\\ProductI18n', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'ProductI18ns');
81: $this->addRelation('ProductVersion', 'Thelia\\Model\\ProductVersion', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'ProductVersions');
82: }
83:
84: 85: 86: 87: 88: 89:
90: public function getBehaviors()
91: {
92: return array(
93: 'timestampable' => array('create_column' => 'created_at', 'update_column' => 'updated_at', 'disable_updated_at' => 'false', ),
94: 'i18n' => array('i18n_table' => '%TABLE%_i18n', 'i18n_phpname' => '%PHPNAME%I18n', 'i18n_columns' => 'title, description, chapo, postscriptum', 'locale_column' => 'locale', 'default_locale' => '', 'locale_alias' => '', ),
95: 'versionable' => array('version_column' => 'version', 'version_table' => '', 'log_created_at' => 'true', 'log_created_by' => 'true', 'log_comment' => 'false', 'version_created_at_column' => 'version_created_at', 'version_created_by_column' => 'version_created_by', 'version_comment_column' => 'version_comment', ),
96: );
97: }
98:
99: }
100: