services:
  server:
    image: ${IMAGE}
    ports:
      - "3117:3000"
    environment:
       # Discord Configuration
      - DISCORD_TOKEN=${DISCORD_TOKEN}
      
      # Himbucks System Configuration
      - HIMBUCKS_PER_REWARD=${HIMBUCKS_PER_REWARD:-10}
      - MESSAGE_COUNT_THRESHOLD=${MESSAGE_COUNT_THRESHOLD:-5}
      - HIMBUCKS_COOLDOWN_MINUTES=${HIMBUCKS_COOLDOWN_MINUTES:-1}
      
      # Markov Chain Configuration
      - MARKOV_DEFAULT_MESSAGES=${MARKOV_DEFAULT_MESSAGES:-100}
      - MARKOV_MAX_MESSAGES=${MARKOV_MAX_MESSAGES:-1000}
      - MARKOV_CACHE_SIZE=${MARKOV_CACHE_SIZE:-10}
      - MARKOV_MAX_NGRAM=${MARKOV_MAX_NGRAM:-5}
      - MARKOV_MEMORY_LIMIT_MB=${MARKOV_MEMORY_LIMIT_MB:-100}
      
      # Database Configuration
      - DB_MAX_OPEN_CONNS=${DB_MAX_OPEN_CONNS:-25}
      - DB_MAX_IDLE_CONNS=${DB_MAX_IDLE_CONNS:-5}
      - DB_CONN_MAX_LIFETIME_MINUTES=${DB_CONN_MAX_LIFETIME_MINUTES:-5}
      
      # Command Cooldowns (in seconds)
      - PING_COOLDOWN_SECONDS=${PING_COOLDOWN_SECONDS:-5}
      - HS_COOLDOWN_SECONDS=${HS_COOLDOWN_SECONDS:-10}
      - MARKOV_COOLDOWN_SECONDS=${MARKOV_COOLDOWN_SECONDS:-30}
      - HIMBUCKS_COOLDOWN_SECONDS=${HIMBUCKS_COOLDOWN_SECONDS:-5}
      - HIMBOARD_COOLDOWN_SECONDS=${HIMBOARD_COOLDOWN_SECONDS:-5}
      - SENDBUCKS_COOLDOWN_SECONDS=${SENDBUCKS_COOLDOWN_SECONDS:-1800}
    volumes:
      - ${ROOT_DIR}:/data
