package cn.axzo.msg.center.inside.notices.service;

import cn.axzo.basics.common.page.PageRequest;
import cn.axzo.msg.center.domain.entity.PendingMessageRecord;
import cn.axzo.msg.center.service.enums.IdentityTypeEnum;
import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
import cn.axzo.msg.center.service.enums.YesOrNo;
import cn.azxo.framework.common.model.Page;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @description
 *   待办消息记录Service
 *
 * @author cold_blade
 * @date 2023/9/13
 * @version 1.0
 */
public interface PendingMessageRecordService {

    Page<PendingMessageRecord> page(PendingMessageRecordPageReq request);

    @Builder
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    class PendingMessageRecordPageReq extends PageRequest {

        private List<Long> ids;

        private Long idGT;

        /**
         * ouId是否已经迁移 (解决ouId不准的问题)
         */
        private YesOrNo isOuIdMigrated;

        /**
         * 执行者身份
         */
        private IdentityTypeEnum executorType;

        /**
         * 消息所属组织类型
         */
        private OrganizationTypeEnum orgType;

        /**
         * 消息模板
         */
        private List<String> templateCodes;


    }
}
