package com.eitc.patient.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.eitc.patient.domain.CollectCostPatientsDetails;
import com.eitc.patient.vo.CollectCostPatientsDetailsVO;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * ICollectCostPatientsDetailsService
 *
 * @author mtx
 * @date: 2024/05/17 15:36
 */
@Service
public interface ICollectCostPatientsDetailsService extends IService<CollectCostPatientsDetails> {

    /**
     * 编辑医疗费用患者详情的接口方法。
     * 该方法旨在更新已存在的医疗费用患者详情信息。通过接收一个CollectCostPatientsDetailsVO类型的对象，
     * 对象中包含了需要更新的所有细节信息，实现对数据库中相应患者详情的修改。
     *
     * @param vo CollectCostPatientsDetailsVO类型的参数，包含了需要更新的患者详情信息。
     * @author mtx
     * @date 2024/7/22 14:30
     */
    void edit(CollectCostPatientsDetailsVO vo);

    /**
     * 根据采集费用患者ID保存或更新费用采集患者详情列表。
     * 此方法首先删除已存在的与给定患者ID相关的费用采集详情，然后批量保存新的费用采集详情列表。
     * 这样做的目的是确保数据的更新准确性，避免旧数据的干扰。
     *
     * @param collectCostPatientsId          患者采集费用的唯一标识ID。此ID用于关联费用采集患者详情。
     * @param collectCostPatientsDetailsList 费用采集患者详情的列表。这些详情将被保存或更新。
     * @author mtx
     * @date 2024/7/22 14:56
     */
    void saveDetailsByCollectCostPatientsId(String collectCostPatientsId, List<CollectCostPatientsDetails> collectCostPatientsDetailsList);

}
