Customer.php 4.7 KB
<?php
    
    namespace artweb\artbox\models;
    
    use common\models\User;
    use Yii;
    use yii\web\IdentityInterface;
    
    /**
     * This is the model class for table "customer".
     *
     * @property integer $id
     * @property string  $username
     * @property string  $password_hash
     * @property string  $surname
     * @property string  $phone
     * @property string  $gender
     * @property integer $birthday
     * @property string  $body
     * @property integer $group_id
     * @property string  $email
     * @property string  $auth_key
     * @property string  $password_reset_token
     * @property integer $status
     * @property integer $created_at
     * @property integer $updated_at
     */
    class Customer extends User implements IdentityInterface
    {
        
        /**
         * @inheritdoc
         */
        public static function tableName()
        {
            return 'customer';
        }
        
        /**
         * @inheritdoc
         */
        public function rules()
        {
            return [
                [
                    [
                        'username',
                        'password_hash',
                    ],
                    'required',
                ],
                [
                    [ 'password' ],
                    'safe',
                ],
                [
                    [
                        'group_id',
                        'status',
                        'created_at',
                        'updated_at',
                    ],
                    'integer',
                ],
                [
                    [ 'body' ],
                    'string',
                ],
                [
                    [ 'status' ],
                    'default',
                    'value' => '10',
                ],
                [
                    [
                        'birthday',
                        'username',
                        'surname',
                        'phone',
                        'email',
                        'password_reset_token',
                        'city',
                        'address',
                    ],
                    'string',
                    'max' => 255,
                ],
                [
                    [
                        'gender',
                        'auth_key',
                    ],
                    'string',
                    'max' => 32,
                ],
            ];
        }




        /**
         * @inheritdoc
         */
        public function attributeLabels()
        {
            return [
                'id'                   => Yii::t('app', 'id'),
                'username'             => Yii::t('app', 'username'),
                'surname'              => Yii::t('app', 'surname'),
                'phone'                => Yii::t('app', 'Мобильный телефон'),
                'gender'               => Yii::t('app', 'gender'),
                'birthday'             => Yii::t('app', 'birthday'),
                'body'                 => Yii::t('app', 'body'),
                'group_id'             => Yii::t('app', 'group_id'),
                'email'                => Yii::t('app', 'email'),
                'auth_key'             => Yii::t('app', 'auth_key'),
                'password_reset_token' => Yii::t('app', 'password_reset_token'),
                'status'               => Yii::t('app', 'status'),
                'created_at'           => Yii::t('app', 'created_at'),
                'updated_at'           => Yii::t('app', 'updated_at'),
                'city'                 => Yii::t('app', 'Город'),
                'address'              => Yii::t('app', 'Адрес'),
            ];
        }
        
        /**
         * Finds user by email
         *
         * @param string $email
         *
         * @return static|null
         */
        public static function findByEmail($email)
        {
            return static::findOne(
                [
                    'email'  => $email,
                    'status' => self::STATUS_ACTIVE,
                ]
            );
        }
    
        /**
         * Get full name
         *
         * @return string
         */
        public function getName()
        {
            return $this->username . ' ' . $this->surname;
        }


        public function beforeSave($insert)
        {
            if (parent::beforeSave($insert)) {

                $this->birthday = !empty($this->birthday) ? (string)strtotime($this->birthday) : '';
                return true;
            }
            return false;

        }
        
        public function getPassword()
        {
            return false;
        }
        
    }