package com.zioinfo.signage;

import org.apache.ibatis.annotations.Mapper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * zioinfo-signage ESL 통합 관리 플랫폼.
 *
 * <p>레거시 Spring Boot 1.5 / Java 8 ESL 시스템 6개를 Spring Boot 3.5 / Java 17 단일 플랫폼으로 재구현.
 * 멀티테넌트(LGINNOTEK·LGIT·EMART·ZIOINFO), 매장/HCore 장치 관리, POS 가격 연동,
 * 알람 모니터링, 펌웨어 관리, Ollama 온프레미스 AI 이상 감지.
 *
 * <p>보안 불변 규칙: 외부 AI API 절대 금지 (Ollama localhost:11434만 허용),
 * 자격증명은 AES-256-GCM 암호화 저장, API 응답에서 password_hash 완전 제외.
 *
 * <p>CRITICAL: @MapperScan(annotationClass = Mapper.class) 패턴 사용 — basePackages 아님.
 */
@SpringBootApplication
@MapperScan(annotationClass = Mapper.class)
@EnableScheduling
@EnableAsync
public class SignageApplication {
    public static void main(String[] args) {
        SpringApplication.run(SignageApplication.class, args);
    }
}
