/**
 * 
 */
package org.springblade.message.model;

import java.util.Collection;

import cn.hutool.core.util.StrUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
import org.springblade.message.enums.AppMsgTypeEnum;

/**
 * @author wookvn
 *	
 *	消息体
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@SuperBuilder(toBuilder = true)
@EqualsAndHashCode(callSuper = true)
public class AppMsgRequest extends MsgRequest {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * APP消息数据
	 */
	private AppMsgInfo appMsgInfo;
	
	/**
	 * 手机号码列表
	 */
	private Collection<String> phones;

	/**
	 * 三方APP的用户ID唯一标识 [手机号和用户id必须有一个有值]
	 * ！！！注意！！！ ⚠️  此处的userId不是项目中用户id，是第三方APP的用户ID，比如：企微的用户id。
	 */
	private Collection<String> userIds;

	/**
	 * APP消息类型
	 */
	private AppMsgTypeEnum appMsgType;

	/**
	 * 文本卡片类型需要该字段
	 */
	private String url;

	/**
	 * 授权回调地址 当上面的url地址需要授权获取token，需要填写该链接
	 */
	private String authRedirectUrl;

	/**
	 * 是否推送所有用户
	 */
	private Boolean allUserStatus = false;

	public AppMsgTypeEnum getAppMsgType() {
		if (this.appMsgType != null) {
			return this.appMsgType;
		}
		if (this.getFile() != null) {
			return AppMsgTypeEnum.file;
		}
		if (StrUtil.isNotBlank(this.getUrl())) {
			return AppMsgTypeEnum.textcard;
		}
		return AppMsgTypeEnum.text;
	}
}
