package com.muyu.domain.resp;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.domain.SysUser;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 企业信息响应对象
 * @Author：weiran
 * @Package：com.muyu.firmmanage.domain.resp
 * @Project：cloud-server-8
 * @name：FirmListResp
 * @Date：2024/9/27 19:33
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name="企业信息响应对象",description = "企业信息响应对象")
public class FirmListResp {
    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 部门ID
     */
    private Long deptId;

    /**
     * 用户账号
     */
    private String userName;

    /**
     * 用户昵称
     */
    private String nickName;

    /**
     * 用户类型（00系统用户）
     */
    private String userType;

    /**
     * 用户邮箱
     */
    private String email;

    /**
     * 手机号码
     */
    private String phonenumber;

    /**
     * 用户性别（0男 1女 2未知）
     */
    private Integer sex;

    /**
     * 头像地址
     */
    private String avatar;

    /**
     * 密码
     */
    private String password;

    /**
     * 帐号状态（0正常 1停用）
     */
    private Integer status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 最后登录IP
     */
    private String loginIp;

    /**
     * 最后登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date loginDate;

    /**
     * 数据库名称
     */
    private String databaseName;

    /**
     * 企业ID
     */
    private Long firmId;
    /**
     * 企业名称
     */
//    @TableField(exist = false)
    private String firmName;
    /**
     * 企业权限Id
     */
    private long permissionId;

    /**
     * 权限等级
     */
    private String permissionLevel;

    /**
     * 车辆数目
     */
    private Integer carNumber;

    /**
     * 车辆类型数目
     */
    private Integer carTypeNumber;


    /**
     * 数据库对象构建为返回结果对象
     */
    public static FirmListResp firmListResp(SysUser sysUser){
        return FirmListResp.builder()
                .userId(sysUser.getUserId())
                .deptId(sysUser.getDeptId())
                .userName(sysUser.getUserName())
                .nickName(sysUser.getNickName())
                .userType((sysUser.getUserType()))
                .email(sysUser.getEmail())
                .phonenumber(sysUser.getPhonenumber())
                .sex(sysUser.getSex())
                .avatar(sysUser.getAvatar())
                .password(sysUser.getPassword())
                .status(sysUser.getStatus())
                .delFlag(sysUser.getDelFlag())
                .loginDate(sysUser.getLoginDate())
                .databaseName(sysUser.getDatabaseName())
                .firmId(sysUser.getFirmId())
                .build();
    }


}
