package com.sonic.cow.event.outer.payload;

import com.google.common.collect.Lists;
import lombok.*;

import java.math.BigDecimal;
import java.util.List;

@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class CalcHeartbeatLevelPayload {
    /**
     * 用户id
     */
    private Long userId;

    /**
     * AI的id
     */
    private Long aiId;

    /**
     * 心动值
     */
    private BigDecimal heartbeatVal;

    /**
     * 类型 聊天，24小时未聊天扣减心动值，发送礼物,语音通话
     */
    private Type type;

    /**
     * 扩展字段
     */
    private String ext;

    @Getter
    public enum Type {
        //聊天
        CHAT,
        //24小时未聊天扣减心动值
        HOURS_WITHOUT_CHAT,
        //发送礼物
        SEND_GIFT,
        //语音通话
        VOICE_CHAT,
        ;

        /**
         * 是否聊天类型
         *
         * @param type
         * @return
         */
        public static Boolean isChatType(Type type) {
            List<Type> chatTypeList = Lists.newArrayList(CHAT, SEND_GIFT, VOICE_CHAT);
            return chatTypeList.contains(type);
        }
    }

}
