package com.cyksj.model.entity;

import com.ejlchina.searcher.bean.DbField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.stream.Stream;

/**
 * @author chan
 * @date 2022/3/14 下午7:23
 */
@Accessors(chain = true)
@Data
public class CorpUserFollowRelation extends BaseEntity implements Serializable {

	/**
	 * wx_corp_app_id
	 */
	private Long wxCorpId;

	/**
	 * corp_user 客户id
	 */
	private String corpUserId;

	/**
	 * corp_follow 成员id
	 */
	private String followId;

	/**
	 * 该成员对此外部联系人的备注
	 */
	private String remark;

	/**
	 * 该成员对此外部联系人的描述
	 */
	private String description;

	/**
	 * 该成员添加此外部联系人的时间
	 */
	private Date addCreatedTime;

	/**
	 * 该成员对此客户备注的手机号码
	 */
	private String remarkMobiles;

	/**
	 * 该成员添加此客户的来源
	 */
	private String addWay;

	/**
	 * 关联关系
	 * 0删除 1未删除
	 */
	private Integer status;

	/**
	 * 发起添加的userid，如果成员主动添加，为成员的userid；如果是客户主动添加，则为客户的外部联系人userid；如果是内部成员共享/管理员分配，则为对应的成员/管理员userid
	 */
	private String operUserid;


	/**
	 * 发起删除的userid
	 */
	private String delUserid;

	/**
	 * 会话存档同意情况 同意:"Agree"，不同意:"Disagree"
	 */
	private String agreeStatus;

	@AllArgsConstructor
	@Getter
	public enum Way {
		way0("0", "未知来源"),
		way1("1", "扫描二维码"),
		way2("2", "搜索手机号"),
		way3("3", "名片分享"),
		way4("4", "群聊"),
		way5("5", "手机通讯录"),
		way6("6", "微信联系人"),
		way8("8", "安装第三方应用时自动添加的客服人员"),
		way9("9", "搜索邮箱"),
		way10("10", "视频号添加"),
		way201("201", "内部成员共享"),
		way202("202", "管理员/负责人分配");

		private String code;

		private String desc;

		@SuppressWarnings("rawtypes")
		public static String getDesc(String code) {
			return Stream.of(Way.values())
					.filter(enums -> enums.getCode().equals(code)).findFirst().orElse(way0).getDesc();
		}

	}
}
