package com.czg.account.service;

import com.czg.account.dto.HandoverRecordDTO;
import com.czg.account.entity.HandoverRecord;
import com.czg.account.vo.HandoverProductListVo;
import com.czg.account.vo.HandoverTotalVo;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;

import java.util.List;

/**
 * 交班记录表
 *
 * @author Tankaikai tankaikai@aliyun.com
 * @since 1.0 2025-02-27
 */
public interface HandoverRecordService extends IService<HandoverRecord> {

    /**
     * 会员积分分页
     *
     * @param beginDate 开始日期
     * @param endDate   结束日期
     * @return 分页结果
     */
    Page<HandoverRecordDTO> getHandoverRecordPage(String beginDate, String endDate);

    /**
     * 根据交班记录ID获取商品列表
     *
     * @param id 交班记录ID
     * @return 商品列表
     */
    List<HandoverProductListVo> getHandoverProductListById(Long id);

    /**
     * 统计交班数据
     *
     * @return 交班数据
     */
    HandoverTotalVo totalHandoverData();

    /**
     * 初始化交班记录
     */
    void initHandoverRecord(HandoverRecord entity);

    /**
     * 交班/关班
     *
     * @return 交班记录ID
     */
    HandoverRecord handover();

    /**
     * 交班打印小票
     *
     * @param record  交班记录
     * @param isPrint 是否打印 1-是 0-否
     */
    void printHandoverReceipt(HandoverRecord record, Integer isPrint);

}