<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Prettus\Repository\Contracts\Transformable;
use Prettus\Repository\Traits\TransformableTrait;

/**
 * Class Member.
 *
 * @package namespace App\Models;
 * @property int $id
 * @property string $phone 手机号码
 * @property string $nickname 昵称
 * @property string $password 登录密码
 * @property string $pay_pass 支付密码
 * @property string $encrypt 加密字符串
 * @property int $status 状态,0:关闭,1:开启
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @method static \Illuminate\Database\Eloquent\Builder|Member newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder|Member newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder|Member query()
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereEncrypt($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereNickname($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member wherePassword($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member wherePayPass($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member wherePhone($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereUpdatedAt($value)
 * @mixin \Eloquent
 * @property int $recom_id 推荐人ID
 * @property string|null $head_img 头像
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereHeadImg($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereRecomId($value)
 * @property string $invite_code 推荐码
 * @property int $level_id 等级ID
 * @property string|null $token_str token
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereInviteCode($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereLevelId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereTokenStr($value)
 * @property string|null $consume_money 消费金
 * @property string|null $money 余额
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereConsumeMoney($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereMoney($value)
 * @property string|null $benefit_money 公益豆
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereBenefitMoney($value)
 * @property string|null $share_img 分享海报图片
 * @property int|null $sex 性别
 * @property string|null $code_img 推荐码
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereCodeImg($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereSex($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereShareImg($value)
 * @property-read Member|null $recomMember
 * @property string|null $describe 描述
 * @property string|null $sid 长链接登陆编号
 * @property int|null $on_line 长链接在线
 * @property int|null $source 来源 1微信 2支付宝 3浏览器
 * @property int|null $is_del 是否删除 0否 1是
 * @property string|null $merge_source 账户合并了那些来源账户
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereDescribe($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereIsDel($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereMergeSource($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereOnLine($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereSid($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereSource($value)
 * @property string $address 手机号码
 * @property string $recom_mobile 推荐人手机号码
 * @property string|null $err_msg 锁定说明
 * @property string|null $m_p
 * @property int|null $is_lock 是否锁定,1:是,0否
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereAddress($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereErrMsg($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereIsLock($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereMP($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereRecomMobile($value)
 * @property int|null $is_auto 是否自动升级
 * @property int|null $is_boss is_boss
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereIsAuto($value)
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereIsBoss($value)
 * @property string $recom_address 推荐人手机号码
 * @method static \Illuminate\Database\Eloquent\Builder|Member whereRecomAddress($value)
 */
class Member extends Model implements Transformable
{
    use TransformableTrait;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $guarded = ['id', 'updated_at', 'created_at'];

//    protected $dispatchesEvents=[
//        //绑定上下级关系
//        'created'=>RelevanceEvent::class
//    ];

    /**
     * 定义一级分类关联模型
     * @return \Illuminate\Database\Eloquent\Relations\HasOne
     */
    public function recomMember()
    {
        return $this->hasOne('App\Models\Member', 'id', 'recom_id')->select(['id', 'nickname']);
    }

}