package com.ruoyi.ss.device.service;


import com.ruoyi.ss.device.domain.vo.DeviceVO;

import java.util.Collections;
import java.util.List;

/**
 * 设备信息组装员
 * @author wjh
 * 2024/4/13
 */
public interface DeviceAssembler {

    /**
     * 拼接套餐列表
     */
    void assembleSuitList(List<DeviceVO> list);

    /**
     * 拼接店铺营业时间
     */
    void assembleBusinessTime(List<DeviceVO> list);

    /**
     * 拼接订单统计信息：订单数量、订单金额
     */
    void assembleOrderCountInfo(List<DeviceVO> list);

    /**
     * 拼接真实的服务费率
     */
    void assembleRealServiceRate(DeviceVO device);

    /**
     * 拼接真实的服务费率
     */
    void assembleRealServiceRate(List<DeviceVO> list);

    /**
     * 拼接正在使用中的订单数量
     */
    void assembleUsingBillCount(List<DeviceVO> list);

    /**
     * 拼接是否允许切换开关设备
     */
    void assembleAllowSwitch(List<DeviceVO> list, Long userId);

    default void assembleAllowSwitch(DeviceVO device, Long userId) {
        assembleAllowSwitch(Collections.singletonList(device), userId);
    }

    /**
     * 拼接分成比例列表
     */
    void assembleBonusList(List<DeviceVO> list);

    default void assembleBonusList(DeviceVO device) {
        this.assembleBonusList(Collections.singletonList(device));
    }
}
