Order.php 5.29 KB
<?php
    
    namespace artbox\order\models;
    
    use Yii;
    use yii\db\ActiveRecord;

    /**
     * This is the model class for table "order".
     *
     * @property integer        $id
     * @property integer        $user_id
     * @property string         $name
     * @property string         $phone
     * @property string         $email
     * @property string         $city
     * @property string         $address
     * @property string         $comment
     * @property integer        $label_id
     * @property integer        $delivery_id
     * @property integer        $payment_id
     * @property integer        $created_at
     * @property integer        $updated_at
     * @property integer        $deleted_at
     * @property Customer       $user
     * @property Delivery       $delivery
     * @property Label          $label
     * @property Payment        $payment
     * @property OrderProduct[] $orderProducts
     */
    class Order extends ActiveRecord
    {
        /**
         * @inheritdoc
         */
        public static function tableName()
        {
            return 'order';
        }
        
        /**
         * @inheritdoc
         */
        public function rules()
        {
            return [
                [
                    [
                        'user_id',
                        'label_id',
                        'delivery_id',
                        'payment_id',
                        'created_at',
                        'updated_at',
                        'deleted_at',
                    ],
                    'integer',
                ],
                [
                    [
                        'label_id',
                        'delivery_id',
                        'payment_id',
                    ],
                    'required',
                ],
                [
                    [
                        'name',
                        'phone',
                        'email',
                        'city',
                        'address',
                        'comment',
                    ],
                    'string',
                    'max' => 255,
                ],
                [
                    [ 'user_id' ],
                    'exist',
                    'skipOnError'     => true,
                    'targetClass'     => Customer::className(),
                    'targetAttribute' => [ 'user_id' => 'id' ],
                ],
                [
                    [ 'delivery_id' ],
                    'exist',
                    'skipOnError'     => true,
                    'targetClass'     => Delivery::className(),
                    'targetAttribute' => [ 'delivery_id' => 'id' ],
                ],
                [
                    [ 'label_id' ],
                    'exist',
                    'skipOnError'     => true,
                    'targetClass'     => Label::className(),
                    'targetAttribute' => [ 'label_id' => 'id' ],
                ],
                [
                    [ 'payment_id' ],
                    'exist',
                    'skipOnError'     => true,
                    'targetClass'     => Payment::className(),
                    'targetAttribute' => [ 'payment_id' => 'id' ],
                ],
            ];
        }
        
        /**
         * @inheritdoc
         */
        public function attributeLabels()
        {
            return [
                'id'          => Yii::t('order', 'ID'),
                'user_id'     => Yii::t('order', 'User ID'),
                'name'        => Yii::t('order', 'Name'),
                'phone'       => Yii::t('order', 'Phone'),
                'email'       => Yii::t('order', 'Email'),
                'city'        => Yii::t('order', 'City'),
                'address'     => Yii::t('order', 'Address'),
                'comment'     => Yii::t('order', 'Comment'),
                'label_id'    => Yii::t('order', 'Label ID'),
                'delivery_id' => Yii::t('order', 'Delivery ID'),
                'payment_id'  => Yii::t('order', 'Payment ID'),
                'created_at'  => Yii::t('order', 'Created At'),
                'updated_at'  => Yii::t('order', 'Updated At'),
                'deleted_at'  => Yii::t('order', 'Deleted At'),
            ];
        }
        
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getUser()
        {
            return $this->hasOne(Customer::className(), [ 'id' => 'user_id' ]);
        }
        
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getDelivery()
        {
            return $this->hasOne(Delivery::className(), [ 'id' => 'delivery_id' ]);
        }
        
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getLabel()
        {
            return $this->hasOne(Label::className(), [ 'id' => 'label_id' ]);
        }
        
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getPayment()
        {
            return $this->hasOne(Payment::className(), [ 'id' => 'payment_id' ]);
        }
        
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getOrderProducts()
        {
            return $this->hasMany(OrderProduct::className(), [ 'order_id' => 'id' ]);
        }
    }