package com.zhongshu.card.client.service.payment;

import com.zhongshu.card.client.model.payment.*;
import com.zhongshu.card.client.model.payment.statistic.BusinessMainStatisticModel;
import com.zhongshu.card.client.model.payment.statistic.StatisticSearch;
import com.github.microservice.net.ResultContent;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * @author TRX
 * @date 2024/6/17
 */
public interface ExpenseFlowService {

    ResultContent<Page<ExpenseFlowModel>> page(ExpenseFlowSearch param, Pageable pageable);

    ResultContent<Page<ExpenseFlowModel>> busPage(ExpenseFlowSearch param, Pageable pageable);

    // 统计用户的消费金额
    ResultContent<ExpenseFlowCount> countUserPayment(ExpenseFlowSearch param);

    ResultContent<ExpenseFlowCount> countBusPayment(ExpenseFlowSearch param);

    ResultContent<ExpenseFlowAreaModel> getDetail(String id);

    ResultContent<ExpenseFlowAreaModel> getDetailByPaymentNo(String paymentNo);

    // 商户的订单列表
    ResultContent<Page<ExpenseFlowModel>> pageBusMainOrder(ExpenseFlowSearch param, Pageable pageable);

    // 商家直接消费订单退款
    ResultContent expenseShopRefund(ExpenseRefundParam param);

    // 商户统计
    ResultContent<ExpenseFlowCount> countBuinessMainPayment(ExpenseFlowSearch param);

    // 商户小程序首页统计
    ResultContent<BusinessMainStatisticModel> businessMainPageStatistic(StatisticSearch statisticSearch);

}
