<?php

namespace app\model;

use support\Model;

/**
 * @property integer $id ID (主键)
 * @property string $username 用户名
 * @property string $invite_code 邀请码
 * @property integer $is_active 是否激活
 * @property string $login_ip 登录 IP
 * @property string $join_ip 加入 IP
 * @property integer $login_time 登录时间
 * @property integer $prev_time 上次登录时间
 * @property integer $status 状态 0正常 1禁用
 * @property integer $money 账户余额
 * @property integer $admin_money 管理员余额
 * @property integer $all_team_money 总团队余额
 * @property integer $task_income_money 任务收入
 * @property integer $task_status 任务状态
 * @property integer $today_task_income 今日任务收入
 * @property integer $today_team_income 今日团队收入
 * @property integer $growth_value 成长值
 * @property integer $vip_id VIP ID
 * @property integer $withdraw_money 提现金额
 * @property integer $f_id 上级ID
 * @property integer $ff_id 二级上级ID
 * @property integer $fff_id 三级上级ID
 * @property integer $top_id 顶级ID
 * @property string $path 路径
 * @property string $remark 备注
 * @property integer $createtime 创建时间
 * @property integer $updatetime 更新时间
 */
class User extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'users';  // 表名

    /**
     * The primary key associated with the table.
     *
     * @var string
     */
    protected $primaryKey = 'id';  // 主键

    /**
     * Indicates if the model should be timestamped.
     *
     * @var bool
     */
    public $timestamps = true;  // 如果不需要自动维护创建和更新时间，可以将此设置为 false

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'username',
        'invite_code',
        'is_active',
        'login_ip',
        'join_ip',
        'login_time',
        'prev_time',
        'status',
        'money',
        'admin_money',
        'all_team_money',
        'task_income_money',
        'task_status',
        'today_task_income',
        'today_team_income',
        'growth_value',
        'vip_id',
        'withdraw_money',
        'f_id',
        'ff_id',
        'fff_id',
        'top_id',
        'path',
        'remark',
        'createtime',
        'updatetime',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'money' => 'integer',
        'admin_money' => 'integer',
        'all_team_money' => 'integer',
        'task_income_money' => 'integer',
        'today_task_income' => 'integer',
        'today_team_income' => 'integer',
        'growth_value' => 'integer',
        'withdraw_money' => 'integer',
        'createtime' => 'integer',
        'updatetime' => 'integer',
        'status' => 'integer',
    ];

    /**
     * 获取登录时间的格式化值
     *
     * @param mixed $value
     * @return string
     */
    public function getLoginTimeAttribute($value)
    {
        return date('Y-m-d H:i:s', $value);
    }

    /**
     * 获取创建时间的格式化值
     *
     * @param mixed $value
     * @return string
     */
    public function getCreatetimeAttribute($value)
    {
        return date('Y-m-d H:i:s', $value);
    }

    /**
     * 获取更新时间的格式化值
     *
     * @param mixed $value
     * @return string
     */
    public function getUpdatetimeAttribute($value)
    {
        return date('Y-m-d H:i:s', $value);
    }
}
