package com.bonus.material.lease.service;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.largeScreen.entity.MaLeaseOnlyInfo;
import com.bonus.material.lease.domain.MaLease;
import com.bonus.material.lease.domain.MaLeaseDto;
import com.bonus.material.lease.domain.MaLeaseInfo;
import com.bonus.material.lease.domain.vo.MaLeaseVo;

import java.util.List;

/**
 * 租赁需求大厅service层
 * @Author ma_sh
 * @create 2024/11/26 10:41
 */
public interface MaLeaseInfoService {

    /**
     * 发布租赁需求
     * @param maLeaseInfo
     * @return
     */
    AjaxResult add(MaLeaseInfo maLeaseInfo);

    /**
     * 修改租赁需求
     * @param maLeaseInfo
     * @return
     */
    AjaxResult edit(MaLeaseInfo maLeaseInfo);

    /**
     * 查询单个租赁需求详情
     * @param maLeaseInfo
     * @return
     */
    AjaxResult getById(MaLeaseInfo maLeaseInfo);

    /**
     * 查询租赁需求列表
     * @param dto
     * @return
     */
    List<MaLeaseVo> list(MaLeaseDto dto);

    /**
     * 删除租赁需求
     * @param maLeaseInfo
     * @return
     */
    AjaxResult deleteById(MaLeaseInfo maLeaseInfo);

    /**
     * 查询租赁需求列表首页
     * @param maLease
     * @return
     */
    List<MaLeaseVo> leaseList(MaLease maLease);

    List<MaLeaseInfo> getLeaseStatusCount(MaLeaseInfo info);

    /**
     * 出租方立即接单
     * @param maLeaseInfo
     * @return
     */
    AjaxResult accept(MaLeaseInfo maLeaseInfo);

    /**
     * 查询出租方需求列表
     * @param dto
     * @return
     */
    List<MaLeaseVo> rentList(MaLeaseDto dto);

    /**
     * 乘租方同意或驳回
     * @param maLeaseInfo
     * @return
     */
    AjaxResult agreeOrReject(MaLeaseInfo maLeaseInfo);

    /**
     * 最需装备二级页面
     * @param dto
     * @return
     */
    List<MaLeaseOnlyInfo> getDetails(MaLeaseOnlyInfo dto);
}
