package com.jpsoft.shinestar.modules.base.service;

import com.github.pagehelper.Page;
import com.jpsoft.shinestar.modules.base.dto.ParkingDetailDTO;
import com.jpsoft.shinestar.modules.base.entity.ParkingMerchant;
import com.jpsoft.shinestar.modules.base.entity.ParkingRecord;
import com.jpsoft.shinestar.modules.common.dto.Sort;

import java.util.List;
import java.util.Map;

/**
 * @author 墨鱼_mo
 * @date 2020-4-14 9:37
 */
public interface ParkingRecordService {
    void insert(ParkingRecord parkingRecord);

    ParkingRecord get(String id);

    void update(ParkingRecord parkingRecord);

    ParkingRecord findBySerialNumber(String outTradeNo);

    ParkingRecord findByOrderNumber(String orderNumber);

    Page<ParkingRecord> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);

    ParkingDetailDTO findByCarNumber(String carNumber, ParkingMerchant parkingMerchant, Long parkId) throws Exception;

    void payNotify(String parkingRecordId) throws Exception;

    ParkingDetailDTO findByChannel(String channelId, ParkingMerchant parkingMerchant, Long parkId) throws Exception;
}
