package com.usky.demo.mapper;

import com.usky.common.mybatis.core.CrudMapper;
import com.usky.demo.domain.*;
import com.usky.demo.service.vo.SuperTableVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ya
 * @since 2024-07-29
 */
@Repository
public interface QueryTdengineDataMapper extends CrudMapper<QueryTdengineData> {

    /**
     * 查询所有设备实时数据
     *
     * @return
     * */
    List<DeviceRealDataVO> getAllDeviceRealTime();

    /**
     * 创建超级表及字段
     *
     * @param superTableDTO
     */
    void createSuperTableAndColumn(SuperTableDTO superTableDTO);
    /**
     * 新增字段
     *
     * @param superTableName
     * @param fields
     */
    void addSuperTableColumn(@Param("superTableName") String superTableName, @Param("fields") Fields fields);

    /**
     * 删除字段
     *
     * @param superTableName
     * @param fields
     */
    void dropSuperTableColumn(@Param("superTableName") String superTableName, @Param("fields") Fields fields);

    /**
     * 查询表结构
     *
     * @param tableName
     */
    List<SuperTableDescribeVO> describeSuperOrSubTable(@Param("tableName") String tableName);

    /**
     * 添加标签
     *
     * @param superTableName
     * @param fields
     */
    void addSuperTableTag(@Param("superTableName") String superTableName, @Param("fields") Fields fields);

    /**
     * 删除标签
     *
     * @param superTableName
     * @param fields
     */
    void dropSuperTableTag(@Param("superTableName") String superTableName, @Param("fields") Fields fields);
}
