package org.example.service;

import org.example.entity.Terminal;
import org.example.mapper.TerminalMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TerminalService {

    @Autowired
    private TerminalMapper terminalMapper;

    /**
     * 查询所有设备信息
     * @return 设备列表
     */
    public List<Terminal> findAllTerminals() {
        return terminalMapper.findAll();
    }

    /**
     * 根据设备编号查询设备信息
     * @param terminalNumber 设备编号
     * @return 设备信息
     */
    public Terminal findByTerminalNumber(String terminalNumber) {
        return terminalMapper.findByTerminalNumber(terminalNumber);
    }

    /**
     * 根据设备类型模糊查询设备列表
     * @param terminalType 设备类型
     * @return 设备列表
     */
    public List<Terminal> findByTerminalTypeContaining(String terminalType) {
        return terminalMapper.findByTerminalTypeContaining(terminalType);
    }

    /**
     * 根据所属科室模糊查询设备列表
     * @param deptCode 所属科室
     * @return 设备列表
     */
    public List<Terminal> findByDeptCodeContaining(String deptCode) {
        return terminalMapper.findByDeptCodeContaining(deptCode);
    }

    /**
     * 根据所属病区模糊查询设备列表
     * @param wardCode 所属病区
     * @return 设备列表
     */
    public List<Terminal> findByWardCodeContaining(String wardCode) {
        return terminalMapper.findByWardCodeContaining(wardCode);
    }

    /**
     * 根据在线状态查询设备列表
     * @param isOnline 在线状态
     * @return 设备列表
     */
    public List<Terminal> findByIsOnline(Boolean isOnline) {
        return terminalMapper.findByIsOnline(isOnline);
    }

    /**
     * 根据设备名称模糊查询设备列表
     * @param terminalDesc 设备名称
     * @return 设备列表
     */
    public List<Terminal> findByTerminalDescContaining(String terminalDesc) {
        return terminalMapper.findByTerminalDescContaining(terminalDesc);
    }

    /**
     * 添加新设备
     * @param terminal 设备信息
     */
    public void addTerminal(Terminal terminal) {
        terminalMapper.insert(terminal);
    }

    /**
     * 更新设备信息
     * @param terminalNumber 原始设备编号
     * @param terminal 设备信息
     */
    public void updateTerminal(String terminalNumber, Terminal terminal) {
        terminalMapper.update(terminal, terminalNumber);
    }

    /**
     * 删除设备
     * @param terminalNumber 设备编号
     */
    public void deleteTerminal(String terminalNumber) {
        terminalMapper.deleteByTerminalNumber(terminalNumber);
    }
}