package com.yuchen.saas.park.service.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yuchen.saas.park.api.entity.park.FireInspectPlanEntity;
import com.yuchen.saas.park.api.request.*;
import com.yuchen.saas.park.api.response.FireInspectPlanListResponse;
import com.yuchen.saas.park.api.response.FireInspectPlanResponse;
import org.nest.springwrap.core.mp.base.BaseService;
import org.nest.springwrap.core.mp.support.Query;
import org.nest.springwrap.core.tool.api.R;

/**
 * @ClassName FireInspectPlanService
 * @Description 消防巡查计划服务类
 * @Author 肖祥
 * @Date 2022/10/19 11:45
 * @Version 1.0。0
 **/
public interface FireInspectPlanService extends BaseService<FireInspectPlanEntity> {

  /**
   * @Description 新增巡查计划
   * @author 肖祥
   * @date  2022/10/20 11:09
   * @param fireInspectPlanAddRequest:
   * @return org.nest.springwrap.core.tool.api.R<java.lang.Boolean>
   */
    R<Long> add(FireInspectPlanAddRequest fireInspectPlanAddRequest);

    /**
     * @Description 巡查计划列表
     * @author 肖祥
     * @date  2022/10/20 11:09
     * @param fireInspectPlanQueryRequest:
     * @param query:
     * @return org.nest.springwrap.core.tool.api.R<java.lang.Boolean>
     */
    R<IPage<FireInspectPlanListResponse>> list(FireInspectPlanQueryRequest fireInspectPlanQueryRequest, Query query);

    /**
     * @Description 巡查计划结束
     * @author 肖祥
     * @date  2022/10/20 11:11
     * @param fireInspectPlanOverRequest:
     * @return org.nest.springwrap.core.tool.api.R<java.lang.Boolean>
     */
    R<Boolean> over(FireInspectPlanOverRequest fireInspectPlanOverRequest);

    /**
     * @Description 删除计划
     * @author 肖祥
     * @date  2022/10/20 15:14
     * @param fireInspectPlanDeleteRequest:
     * @return org.nest.springwrap.core.tool.api.R<java.lang.Boolean>
     */
     R<Boolean> delete(FireInspectPlanDeleteRequest fireInspectPlanDeleteRequest);

     /**
      * @Description 更新计划
      * @author 肖祥
      * @date  2022/10/20 15:15
      * @param fireInspectPlanUpdateRequest:
      * @return org.nest.springwrap.core.tool.api.R<java.lang.Boolean>
      */
     R<Boolean> update(FireInspectPlanUpdateRequest fireInspectPlanUpdateRequest);

     /**
      * @Description 计划详情
      * @author 肖祥
      * @date  2022/10/20 15:16
      * @param id:
      * @return org.nest.springwrap.core.tool.api.R<com.thinkunion.smart.park.core.service.park.response.FireInspectPlanResponse>
      */
      R<FireInspectPlanResponse> detail(Long id);
  }
