package com.xinelu.manage.service.billinfo;

import com.xinelu.manage.domain.billinfo.BillInfo;
import com.xinelu.manage.dto.billinfo.BillInfoDto;

import java.util.List;

/**
 * 账单信息Service接口
 *
 * @author zh
 * @date 2026-04-16
 */
public interface IBillInfoService {
    /**
     * 查询账单信息
     *
     * @param id 账单信息主键
     * @return 账单信息
     */
    BillInfo selectBillInfoById(Long id);

    /**
     * 查询账单信息列表
     *
     * @param billInfo 账单信息
     * @return 账单信息集合
     */
    List<BillInfo> selectBillInfoList(BillInfo billInfo);

    /**
     * 新增账单信息
     *
     * @param billInfo 账单信息
     * @return 结果
     */
    int insertBillInfo(BillInfo billInfo);

    /**
     * 修改账单信息
     *
     * @param billInfo 账单信息
     * @return 结果
     */
    int updateBillInfo(BillInfo billInfo);

    /**
     * 批量删除账单信息
     *
     * @param ids 需要删除的账单信息主键集合
     * @return 结果
     */
    int deleteBillInfoByIds(Long[] ids);

    /**
     * 删除账单信息信息
     *
     * @param id 账单信息主键
     * @return 结果
     */
    int deleteBillInfoById(Long id);

    /**
     * 账单明细信息列表
     *
     * @param code 账单编号
     * @return BillInfoDto
     */
    List<BillInfoDto> selectBillDetails(String code);
}