package com.yanzhu.module.iot.framework.tdengine.config;

import com.yanzhu.module.iot.service.device.message.IotDeviceMessageService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

/**
 * TDengine 表初始化的 Configuration
 *
 * @author alwayssuper
 */
// TDengine 是可选的，在非 TDengine 环境下不启用此初始化器
// @Component
@RequiredArgsConstructor
@Slf4j
public class TDengineTableInitRunner implements ApplicationRunner {

    private final IotDeviceMessageService deviceMessageService;

    @Override
    public void run(ApplicationArguments args) {
        try {
            // 初始化设备消息表
            deviceMessageService.defineDeviceMessageStable();
        } catch (Exception ex) {
            // 初始化失败时打印错误消息，但不退出系统
            // 因为TDengine是可选的，在非TDengine环境下可以正常运行
            log.warn("[run][TDengine初始化设备消息表结构失败，系统将在非TDengine模式下运行]", ex);
        }
    }

}
