package com.jjt.elec.service;

import com.jjt.elec.domain.ElecPrice;
import javafx.util.Pair;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * 电费价格配置Service接口
 *
 * @author wukai
 * @date 2025-03-14
 */
public interface IElecPriceService {
    /**
     * 查询电费价格配置
     *
     * @param priceId 电费价格配置主键
     * @return 电费价格配置
     */
    public ElecPrice selectElecPriceByPriceId(Long priceId);

    /**
     * 查询电费价格配置列表
     *
     * @param elecPrice 电费价格配置
     * @return 电费价格配置集合
     */
    public List<ElecPrice> selectElecPriceList(ElecPrice elecPrice);

    /**
     * 新增电费价格配置
     *
     * @param elecPrice 电费价格配置
     * @return 结果
     */
    public int insertElecPrice(ElecPrice elecPrice);

    /**
     * 修改电费价格配置
     *
     * @param elecPrice 电费价格配置
     * @return 结果
     */
    public int updateElecPrice(ElecPrice elecPrice);

    /**
     * 批量删除电费价格配置
     *
     * @param priceIds 需要删除的电费价格配置主键集合
     * @return 结果
     */
    public int deleteElecPriceByPriceIds(Long[] priceIds);

    /**
     * 删除电费价格配置信息
     *
     * @param priceId 电费价格配置主键
     * @return 结果
     */
    public int deleteElecPriceByPriceId(Long priceId);

    /**
     * 根据时间获取时段价格列表
     *
     * @param localDate 时间，只取月份
     * @return 电价
     */
    Map<Integer, Pair<String, BigDecimal>> getPrice(LocalDate localDate);
    /**
     * 根据年月获取价格
     * @param year 年
     * @param month 月
     * @return 结果
     */
    ElecPrice selectElecPriceByMonth(int year, int month);
}
