VariantOptionCompl.php 3.87 KB
<?php
    
    namespace artbox\catalog\models;

    use artbox\core\models\Language;
    use yii\db\ActiveQuery;

    /**
     * This is the model class for table "variant_option_compl".
     *
     * @property integer                        $variant_option_group_compl_id
     *
     * @property VariantOptionGroupCompl        $variantOptionGroupCompl
     * @property VariantOptionComplLang[]       $variantOptionComplLangs
     * @property Language[]                     $languages
     * @property VariantOptionComplToCategory[] $variantOptionComplToCategories
     * @property Category[]                     $categories
     * @property VariantToVariantOptionCompl[]  $variantToVariantOptionCompls
     * @property Variant[]                      $variants
     */
    class VariantOptionCompl extends Option
    {
        /**
         * @inheritdoc
         */
        public static function tableName()
        {
            return 'variant_option_compl';
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getVariantOptionGroupCompl()
        {
            return $this->hasOne(VariantOptionGroupCompl::className(), [ 'id' => 'variant_option_group_compl_id' ])
                        ->inverseOf('variantOptionCompls');
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getVariantOptionComplLangs()
        {
            return $this->hasMany(VariantOptionComplLang::className(), [ 'variant_option_compl_id' => 'id' ])
                        ->inverseOf('variantOptionCompl');
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getLanguages()
        {
            return $this->hasMany(Language::className(), [ 'id' => 'language_id' ])
                        ->viaTable('variant_option_compl_lang', [ 'variant_option_compl_id' => 'id' ]);
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getVariantOptionComplToCategories()
        {
            return $this->hasMany(VariantOptionComplToCategory::className(), [ 'variant_option_compl_id' => 'id' ])
                        ->inverseOf('variantOptionCompl');
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getCategories()
        {
            return $this->hasMany(Category::className(), [ 'id' => 'category_id' ])
                        ->viaTable('variant_option_compl_to_category', [ 'variant_option_compl_id' => 'id' ]);
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getVariantToVariantOptionCompls()
        {
            return $this->hasMany(VariantToVariantOptionCompl::className(), [ 'variant_option_compl_id' => 'id' ])
                        ->inverseOf('variantOptionCompl');
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getVariants()
        {
            return $this->hasMany(Variant::className(), [ 'id' => 'variant_id' ])
                        ->viaTable('variant_to_variant_option_compl', [ 'variant_option_compl_id' => 'id' ]);
        }
        /**
         * Get exact Option Group id value
         *
         * @return int|null
         */
        public function getGroupId()
        {
            return $this->variant_option_group_compl_id;
        }
        /**
         * Set Option Group link to Option model
         *
         * @param int $id
         *
         * @return void
         */
        public function setGroupId(int $id)
        {
            $this->variant_option_group_compl_id = $id;
        }
        /**
         * Get Group query
         *
         * @return \yii\db\ActiveQuery
         */
        public function getGroup(): ActiveQuery
        {
            return $this->getVariantOptionGroupCompl()
                        ->inverseOf('options');
        }
    }