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

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuchen.saas.park.api.dto.property.*;
import com.yuchen.saas.park.api.entity.property.PropertyAppointHouse;
import com.yuchen.saas.park.api.vo.property.*;
import org.nest.springwrap.core.mp.support.NestPage;

/**
 * @Author 蔡文强
 * @Date 2023/10/27 10:56
 * @Description 预约看房主表 服务类
 */
public interface IPropertyAppointHouseService extends IService<PropertyAppointHouse> {
    Boolean submitIntention(PropertyAppointHouseSubmitIntentionDTO submitIntentionDTO);
    Boolean confirmIntention(PropertyAppointHouseConfirmIntentionDTO confirmIntentionDTO);
    PropertyAppointHouseIntentionDetailVO getIntentionDetailById(Long id);
    NestPage<PropertyAppointHouseIntentionPcListVO> getPcIntentionList(PropertyAppointHouseIntentionPcListQueryDTO queryDTO);
    NestPage<PropertyAppointHouseIntentionAppListVO> getAppIntentionList(PropertyAppointHouseIntentionAppListQueryDTO queryDTO);
    Boolean createAppoint(PropertyAppointHouseCreateAppointDTO createAppointDTO);
    Boolean appointRegister(PropertyAppointHouseRegisterDTO registerDTO);
    Boolean reviewRegister(PropertyAppointHouseReviewRegisterDTO reviewRegisterDTO);
    Boolean appointCancel(PropertyAppointHouseCancelDTO cancelDTO);
    NestPage<PropertyAppointHousePcListVO> getPcAppointList(PropertyAppointHousePcListQueryDTO queryDTO);
    NestPage<PropertyAppointHouseAppListVO> getAppAppointList(PropertyAppointHouseAppListQueryDTO queryDTO);
    NestPage<PropertyAppointHouseAppListVO> getMyAppointList(PropertyAppointHouseAppListQueryDTO queryDTO);
    PropertyAppointHouseDetailVO getAppointDetailById(Long id);
    PropertyAppointHouseMyDetailVO getMyAppointDetailById(Long id);
}
