package cn.axzo.msg.center.api.request;

import cn.axzo.basics.common.page.PageRequest;
import cn.axzo.msg.center.api.enums.MsgStateEnum;
import cn.axzo.msg.center.api.enums.MsgTempBizCategoryEnum;
import cn.axzo.msg.center.api.enums.ReceiveTypeEnum;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * @description
 *   待办消息的分页查询
 * @author cold_blade
 * @date 2023/9/1
 * @version 1.0
 */
@Setter
@Getter
public class PendingMessagePageReq extends PageRequest implements Serializable {

    private static final long serialVersionUID = -6786973059210532683L;

    /**
     * 自然人id
     */
    @NotNull(message = "personId is required")
    private Long personId;
    /**
     * 身份标识
     */
    @NotNull(message = "identifyId is required")
    private Long identifyId;
    /**
     * 身份类型枚举集合
     */
    private Collection<ReceiveTypeEnum> identifyTypes;
    /**
     * 消息的临时业务分类
     */
    private MsgTempBizCategoryEnum tempBizCategory;
    /**
     * 消息状态,待办仅关注以下三种状态:
     *   1. {@link MsgStateEnum#UNSENT}
     *   2. {@link MsgStateEnum#HAS_BEEN_SENT}
     *   3. {@link MsgStateEnum#COMPLETE}
     */
    private Collection<MsgStateEnum> states;
    /**
     * 系统类型
     */
    private String systemType;
    /**
     * 模板id
     */
    private Long moduleId;
    /**
     * 模块id列表
     */
    private List<Long> moduleIds;
}
