package com.ruoyi.ss.toilet.mapper;

import java.util.List;

import com.ruoyi.ss.toilet.domain.Toilet;
import com.ruoyi.ss.toilet.domain.ToiletQuery;
import com.ruoyi.ss.toilet.domain.ToiletVO;
import org.apache.ibatis.annotations.Param;

/**
 * 卫生间Mapper接口
 *
 * @author qzz
 * @date 2025-01-07
 */
public interface ToiletMapper
{
    /**
     * 查询卫生间
     *
     * @param toiletId 卫生间主键
     * @return 卫生间
     */
    public ToiletVO selectToiletByToiletId(Long toiletId);

    /**
     * 查询卫生间列表
     *
     * @param query 卫生间
     * @return 卫生间集合
     */
    public List<ToiletVO> selectToiletList(@Param("query") ToiletQuery query);

    /**
     * 新增卫生间
     *
     * @param toilet 卫生间
     * @return 结果
     */
    public int insertToilet(Toilet toilet);

    /**
     * 修改卫生间
     *
     * @param toilet 卫生间
     * @return 结果
     */
    public int updateToilet(@Param("data") Toilet toilet);

    /**
     * 删除卫生间
     *
     * @param toiletId 卫生间主键
     * @return 结果
     */
    public int deleteToiletByToiletId(Long toiletId);

    /**
     * 批量删除卫生间
     *
     * @param toiletIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteToiletByToiletIds(Long[] toiletIds);

    /**
     * 下架设备（根据设备id）
     * @param deviceId 设备id
     * @return String
     */
    int offlineDeviceByDeviceId(Long deviceId);

    /**
     * 查询数量
     * @param toilet
     * @return
     */
    int selectCount(@Param("query") ToiletQuery toilet);

    /**
     * 修改店铺名称
     * @param toilet 卫生间对象
     * @return 结果
     */
    int updateStoreName(@Param("data") Toilet toilet);

    /**
     * 校验房间码是否存在
     */
    boolean checkCodeIsExist(@Param("code")String code, @Param("toiletId")Long toiletId);
}
