server:
  port: 8015

spring:
  application:
    name: zioinfo-esn
  datasource:
    url: ${DB_URL:jdbc:postgresql://localhost:5432/esn_db}
    username: ${DB_USER:esn_user}
    password: ${DB_PASS:esn_pass2026}
    driver-class-name: org.postgresql.Driver
    hikari:
      maximum-pool-size: 3
      connection-timeout: 30000
  # UIWS(UIMS) 이식: 부팅 시 schema.sql + 90/91/92 보강 sql 멱등 적용
  # (전부 IF NOT EXISTS / ADD COLUMN IF NOT EXISTS / ON CONFLICT DO NOTHING — 재실행 안전).
  # 기존 deploy 의 psql -f schema.sql 와 중복돼도 멱등. 90/91/92 는 deploy 미적용분 보강.
  sql:
    init:
      mode: always
      continue-on-error: true
      schema-locations:
        - classpath:db/schema.sql
        - classpath:db/90_uiws_system.sql
        - classpath:db/91_uiws_port.sql
        - classpath:db/93_auth_otp.sql
        - classpath:db/104_seed_ai_config.sql
        - classpath:db/105_ai_provider_claude.sql
  web:
    resources:
      static-locations: classpath:/static/
  mvc:
    throw-exception-if-no-handler-found: true

mybatis:
  # UIWS 이식: mapper/uiws/*.xml 포함을 위해 재귀 글로브(**)로 확장(기존 mapper/*.xml 포함).
  mapper-locations: classpath:mapper/**/*.xml
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
  type-aliases-package: com.zioinfo.esn.domain

guardia:
  ollama-url: ${OLLAMA_URL:http://localhost:11434}
  ollama-text-model: ${OLLAMA_TEXT_MODEL:llama3.2:1b}
  itsm-url: ${ITSM_URL:http://localhost:9001}
  # AI 학습 트랙: 로컬 DuckDB 저장소 + 중앙 guardia-rag 학습 게이트(온프레미스)
  duckdb-path: ${DUCKDB_PATH:/opt/zioinfo-esn/data/esn_learning.duckdb}
  rag-url: ${RAG_URL:http://localhost:8020}
  jwt:
    secret: ${JWT_SECRET:ZioInfoEsnJwtSecret2026VeryLongSecretKeyForHS256AlgorithmAtLeast256Bits}
    expiration: 86400000

management:
  endpoints:
    web:
      exposure:
        include: health
  endpoint:
    health:
      show-details: never

logging:
  level:
    com.zioinfo.esn: DEBUG
    org.mybatis: WARN
