package response

import (
	"time"
	"ulink-admin/modules/system/models/model"
)

// UserResponse 用户实体返回结构体
type UserResponse struct {
	Id             int64     `json:"id"`                                      //用户ID
	DeptId         int64     `excel:"name=部门" json:"deptId"`                  //部门ID
	UserName       string    `excel:"name=用户登录名" json:"userName"`             //登录用户名
	NickName       string    `excel:"name=用户昵称" json:"nickName"`              //用户昵称
	UserType       string    `json:"userType"`                                //用户类型(00系统用户)
	Email          string    `excel:"name=用户邮箱" json:"email"`                 //邮箱
	PhoneNumber    string    `excel:"name=手机号" json:"phoneNumber"`            //手机号
	Sex            string    `excel:"name=性别,format=0=男,1=女,2=未知" json:"sex"` //性别0男1女
	Avatar         string    `json:"avatar"`                                  //头像路径
	Status         string    `json:"status"`                                  //状态 0正常1停用
	DelFlag        string    `json:"delFlag"`                                 //0正常1删除
	NewVoucherFlag string    `json:"newVoucherFlag"`                          //是否已领取新人券0否1是
	LoginIp        string    `json:"loginIp"`                                 //登录ip
	LoginDate      time.Time `json:"loginDate"`                               //登录时间
	Openid         string    `json:"openid"`                                  //微信用户openid
	Integral       int       `json:"integral"`                                //积分
	GradeScore     int       `json:"gradeScore"`                              //会员等级分
	LevelId        int64     `json:"levelId"`                                 //会员等级id
	CreateTime     time.Time `xorm:"created" json:"createTime"`               //创建时间
	CreateBy       string    `json:"createBy"`                                //创建人
	UpdateTime     time.Time `json:"updateTime"`                              //更新时间
	UpdateBy       string    `json:"updateBy"`                                //更新人
	LastOrderTime  time.Time `json:"lastOrderTime"`                           //最后下单时间
	Balance        string    `json:"balance"`                                 //余额
	Remark         string    `json:"remark"`                                  //备注
}

// UserInfo 用户整体数据
type UserInfo struct {
	User    *model.SysUser  `json:"user,omitempty"`    //用户数据
	Roles   []model.SysRole `json:"roles,omitempty"`   //角色集合
	PostIds *[]int64        `json:"postIds,omitempty"` //岗位id集合
	RoleIds *[]int64        `json:"roleIds,omitempty"` //觉得id集合
}

// MemberInfo 用户等级整体数据
type MemberInfo struct {
	User         *model.SysUser `json:"user,omitempty"` //用户数据
	CouponNumber int64          `json:"couponNumber"`   //优惠券数量
}

// IsAdmin 判断当前用户是否是管理员
func (r UserResponse) IsAdmin() bool {
	return r.Id == 1
}