package com.cyksj.model.manage.views;

import com.ejlchina.searcher.bean.DbField;
import com.ejlchina.searcher.bean.DbIgnore;
import com.ejlchina.searcher.bean.SearchBean;
import lombok.Data;

import java.util.Date;

/**
 * @author chan
 * @date 2024/1/22 14:41
 */

@Data
@SearchBean(tables = " corp_user c,corp_user_auth cu, corp_follow f, corp_user_follow_relation cr :tagTable:",
        where = " c.id = cu.corp_user_id " +
                "and cu.external_userid = cr.corp_user_id " +
                "and f.userid = cr.follow_id " +
                ":tag: :intention: :talkTime:",
        groupBy = "c.name,cu.external_userid,c.avatar,c.type,c.gender,f.name,f.userid,cr.agree_status,cr.add_created_time"
)
public class CorpMsgAuditUserView {

    /**
     * 外部联系人的名称
     */
    @DbField("c.name")
    private String name;

    @DbField("cu.external_userid")
    private String externalUserid;

    @DbField("c.user_id")
    private Long userId;

    /**
     * 外部联系人头像，代开发自建应用需要管理员授权才可以获取，第三方不可获取，上游企业不可获取下游企业客户该字段
     */
    @DbField("c.avatar")
    private String avatar;

    /**
     * 外部联系人的类型，1表示该外部联系人是微信用户，2表示该外部联系人是企业微信用户
     */
    @DbField("c.type")
    private Integer type;

    /**
     * 外部联系人性别 0-未知 1-男性 2-女性。第三方不可获取，上游企业不可获取下游企业客户该字段，返回值为0，表示未定义
     */
    @DbField("c.gender")
    private Integer gender;

    /**
     * 成员名称
     */
    @DbField("f.name")
    private String followName;

    /**
     * 成员userid
     */
    @DbField("f.userid")
    private String followId;

    /**
     * 会话存档同意情况 同意:"Agree"，不同意:"Disagree"
     */
    @DbField("cr.agree_status")
    private String agreeStatus;

    /**
     * 添加时间
     */
    @DbField("cr.add_created_time")
    private Date addCreatedTime;

    @DbField("c.unionid")
    private String unionId;

    @DbIgnore
    private Integer intention;
}
