package com.fs.qw.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 企微功能账号管理对象 qw_account
 *
 * @author fs
 * @date 2023-08-24
 */
public class QwAccount extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 账号 */
    @Excel(name = "账号")
    private String account;

    /** 用户userId */
    @Excel(name = "用户userId")
    private String userId;

    /** 公司id */
    @Excel(name = "公司id")
    private Long companyId;

    /** 设备id */
    @Excel(name = "设备id")
    private String deviceId;


    private Boolean authCheck; //账号在线标记

    /** 设备是否可用 */
    @Excel(name = "设备是否可用")
    private Long availableDevice;

    /** 部门id */
    @Excel(name = "部门id")
    private Long deptId;

    /** 公司员工id */
    @Excel(name = "公司员工id")
    private Long companyUserId;

    /** 是否审核 */
    @Excel(name = "是否审核")
    private Long isAudit;

    /** 上线时间 */
    @Excel(name = "上线时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date onlineTime;

    /** 下线时间 */
    @Excel(name = "下线时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date offlineTime;

    /** 下线类型 */
    @Excel(name = "下线类型")
    private Integer offlineType;


    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setAccount(String account)
    {
        this.account = account;
    }

    public String getAccount()
    {
        return account;
    }
    public void setUserId(String userId)
    {
        this.userId = userId;
    }

    public String getUserId()
    {
        return userId;
    }
    public void setCompanyId(Long companyId)
    {
        this.companyId = companyId;
    }

    public Long getCompanyId()
    {
        return companyId;
    }
    public void setDeviceId(String deviceId)
    {
        this.deviceId = deviceId;
    }

    public String getDeviceId()
    {
        return deviceId;
    }
    public void setAvailableDevice(Long availableDevice)
    {
        this.availableDevice = availableDevice;
    }

    public Long getAvailableDevice()
    {
        return availableDevice;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setCompanyUserId(Long companyUserId)
    {
        this.companyUserId = companyUserId;
    }

    public Long getCompanyUserId()
    {
        return companyUserId;
    }
    public void setIsAudit(Long isAudit)
    {
        this.isAudit = isAudit;
    }

    public Long getIsAudit()
    {
        return isAudit;
    }

    public Boolean getAuthCheck() {
        return authCheck;
    }

    public void setAuthCheck(Boolean authCheck) {
        this.authCheck = authCheck;
    }

    public Date getOnlineTime() {
        return onlineTime;
    }

    public void setOnlineTime(Date onlineTime) {
        this.onlineTime = onlineTime;
    }

    public Date getOfflineTime() {
        return offlineTime;
    }

    public void setOfflineTime(Date offlineTime) {
        this.offlineTime = offlineTime;
    }

    public Integer getOfflineType() {
        return offlineType;
    }

    public void setOfflineType(Integer offlineType) {
        this.offlineType = offlineType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("account", getAccount())
                .append("userId", getUserId())
                .append("companyId", getCompanyId())
                .append("deviceId", getDeviceId())
                .append("availableDevice", getAvailableDevice())
                .append("deptId", getDeptId())
                .append("companyUserId", getCompanyUserId())
                .append("isAudit", getIsAudit())
                .append("remark", getRemark())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("authCheck", getAuthCheck())
                .append("onlineTime", getOnlineTime())
                .append("offlineTime", getOfflineTime())
                .append("offlineType", getOfflineType())
                .toString();
    }
}
