package com.ruoyi.web.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.web.domain.dto.disaster.DisasterReliefAddRequest;
import com.ruoyi.web.domain.dto.disaster.DisasterReliefEditRequest;
import com.ruoyi.web.domain.dto.disaster.DisasterReliefQueryRequest;
import com.ruoyi.web.domain.entity.DisasterRelief;
import com.ruoyi.web.domain.vo.DisasterReliefVO;

/**
 * 灾情共度管理服务接口
 */
public interface DisasterReliefService extends IService<DisasterRelief> {

    /**
     * 添加灾情共度记录
     *
     * @param disasterReliefAddRequest 添加请求
     * @return 添加后的ID
     */
    Integer addDisasterRelief(DisasterReliefAddRequest disasterReliefAddRequest);

    /**
     * 删除灾情共度记录
     *
     * @param ids 记录ID，多个以逗号分隔
     * @return 是否删除成功
     */
    boolean deleteDisasterRelief(String ids);

    /**
     * 修改灾情共度记录
     *
     * @param disasterReliefEditRequest 编辑请求
     */
    void editDisasterRelief(DisasterReliefEditRequest disasterReliefEditRequest);

    /**
     * 根据ID获取灾情共度记录详情
     *
     * @param id 记录ID
     * @return 灾情共度详情VO
     */
    DisasterReliefVO getDisasterReliefById(int id);

    /**
     * 通过实体获取灾情共度VO
     *
     * @param disasterRelief 灾情共度实体
     * @return 灾情共度VO
     */
    DisasterReliefVO getDisasterReliefVO(DisasterRelief disasterRelief);

    /**
     * 分页获取灾情共度列表
     *
     * @param disasterReliefQueryRequest 查询请求
     * @return 分页结果
     */
    Page<DisasterReliefVO> getListDisasterReliefByPage(DisasterReliefQueryRequest disasterReliefQueryRequest);

    /**
     * 获取查询条件
     *
     * @param disasterReliefQueryRequest 查询请求
     * @return 查询条件包装器
     */
    QueryWrapper<DisasterRelief> getQueryWrapper(DisasterReliefQueryRequest disasterReliefQueryRequest);
}
