package com.jeesharp.business.modules.mall.api;

import com.jeesharp.business.modules.mall.api.dto.MallFinanceOrderDTO;
import com.jeesharp.business.modules.mall.api.dto.MallPayBatchSummaryDTO;

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

/**
 * 商城订单/批次财务只读 API，供 finance 模块查询子单与批次展示信息。
 *
 * @author jeesharp
 * @since 2026-06-11
 */
public interface MallFinanceReadApi {

    /**
     * 按主键查询子订单摘要；不存在时返回 {@code null}。
     */
    MallFinanceOrderDTO getOrder(String orderId);

    /**
     * 合并支付按批次查子单；无批次时按 {@code bizOrderId} 查单笔；均无则空列表。
     */
    List<MallFinanceOrderDTO> listSubOrdersForPay(String payBatchId, String bizOrderId);

    /**
     * 按子订单编号解析首条订单主键。
     */
    String findFirstOrderIdByOrderNo(String orderNo);

    /**
     * 按批次编号解析批次主键。
     */
    String findPayBatchIdByBatchNo(String batchNo);

    /**
     * 按主键查询批次摘要。
     */
    MallPayBatchSummaryDTO getPayBatch(String payBatchId);

    /**
     * 批量解析子订单编号。
     */
    Map<String, String> mapOrderNoByIds(Collection<String> mallOrderIds);

    /**
     * 批量解析批次编号。
     */
    Map<String, String> mapBatchNoByIds(Collection<String> payBatchIds);
}
