Delivery.php 3.49 KB
<?php
    
    namespace artbox\order\models;

    use artbox\core\behaviors\LanguageBehavior;
    use artbox\core\models\Language;
    use Yii;
    use yii\db\ActiveQuery;
    use yii\web\Request;

    /**
     * This is the model class for table "delivery".
     *
     * @property integer        $id
     * @property integer        $sort
     * @property float          $value
     * @property boolean        $status
     * @property DeliveryLang[] $deliveryLangs
     * @property Language[]     $languages
     * @property Order[]        $orders
     * * * From language behavior *
     * @property DeliveryLang   $lang
     * @property DeliveryLang[] $langs
     * @property DeliveryLang   $objectLang
     * @property string         $ownerKey
     * @property string         $langKey
     * @property DeliveryLang[] $modelLangs
     * @property bool           $transactionStatus
     * @method string       getOwnerKey()
     * @method void         setOwnerKey( string $value )
     * @method string       getLangKey()
     * @method void         setLangKey( string $value )
     * @method ActiveQuery  getLangs()
     * @method ActiveQuery  getLang( integer $language_id )
     * @method DeliveryLang[]   generateLangs()
     * @method void         loadLangs( Request $request )
     * @method bool         linkLangs()
     * @method bool         saveLangs()
     * @method bool         getTransactionStatus()
     * @method bool         loadWithLangs( Request $request )
     * @method bool         saveWithLangs()
     * * End language behavior *
     * @see LanguageBehavior
     */
    class Delivery extends \yii\db\ActiveRecord
    {
        /**
         * @inheritdoc
         */
        public static function tableName()
        {
            return 'delivery';
        }
    
        /**
         * @inheritdoc
         */
        public function behaviors()
        {
            return [
                'language' => [
                    'class' => LanguageBehavior::className(),
                ],
            ];
        }
    
        /**
         * @inheritdoc
         */
        public function rules()
        {
            return [
                [
                    [ 'sort' ],
                    'integer',
                ],
                [
                    [ 'value' ],
                    'number',
                ],
                [
                    [ 'status' ],
                    'boolean',
                ],
            ];
        }
    
        /**
         * @inheritdoc
         */
        public function attributeLabels()
        {
            return [
                'id'     => Yii::t('order', 'ID'),
                'sort'   => Yii::t('order', 'Sort'),
                'value'  => Yii::t('order', 'Value'),
                'status' => Yii::t('order', 'Status'),
            ];
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getDeliveryLangs()
        {
            return $this->hasMany(DeliveryLang::className(), [ 'delivery_id' => 'id' ]);
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getLanguages()
        {
            return $this->hasMany(Language::className(), [ 'id' => 'language_id' ])
                        ->viaTable('delivery_lang', [ 'delivery_id' => 'id' ]);
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getOrders()
        {
            return $this->hasMany(Order::className(), [ 'delivery_id' => 'id' ]);
        }
    }