package com.ruoyi.web.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.web.domain.dto.event.EventTypeAssigneeQueryRequest;
import com.ruoyi.web.domain.dto.event.EventTypeAssigneeAddRequest;
import com.ruoyi.web.domain.dto.event.EventTypeAssigneeEditRequest;
import com.ruoyi.web.domain.entity.EventTypeAssignee;
import com.ruoyi.web.domain.vo.PersonInfoVO;
import com.ruoyi.web.domain.vo.event.EventTypeAssigneeVO;

import java.util.List;


/**
 *
 */
public interface EventTypeAssigneeService extends IService<EventTypeAssignee> {

    /**
     * 分配事件负责人
     * @param eventTypeAssigneeAddRequest
     * @return
     */
    boolean addEventTypeAssignee(EventTypeAssigneeAddRequest eventTypeAssigneeAddRequest);

    /**
     * 删除事件负责人
     * @param personId
     * @return
     */
    boolean deleteEventTypeAssignee(Integer personId);

    /**
     * 修改事件负责人
     * @param eventTypeAssigneeEditRequest
     */
    void editEventTypeAssignee(EventTypeAssigneeEditRequest eventTypeAssigneeEditRequest);

    /**
     * 获取包装类
     *
     * @param eventTypeAssigneeList
     * @return
     */
    EventTypeAssigneeVO getEventTypeAssigneeVO(List<EventTypeAssignee> eventTypeAssigneeList);

    /**
     * 根据人口id 获取事件负责人类型分配包装类
     *
     * @param personId
     * @return
     */
    EventTypeAssigneeVO getEventTypeAssigneeById(int personId);

    /**
     * 根据事件类型获取 事件负责人列表
     *
     * @param type
     * @return
     */
    List<PersonInfoVO> getListEventPersonInfoVO(Integer type);

    /**
     * 分页获取事件负责人类型分配列表  (根据事件类型获取 事件负责人分页列表)
     *
     * @param eventTypeAssignQueryRequest
     * @return
     */
    Page<PersonInfoVO> getListEventPersonInfoVOByPage(EventTypeAssigneeQueryRequest eventTypeAssignQueryRequest);


}
