services:
  app:
    build: .
    container_name: slack-data-collector-app-dev
    env_file:
      - .env
    command: >
      sh -c "uv run alembic -c app/alembic.ini upgrade head &&
             uv run fastapi dev app/main.py --host 0.0.0.0 --port 8088"
    ports:
      - "8088:8088"
    volumes:
      - ./app:/app/app
    depends_on:
      - redis
    restart: unless-stopped

  celery_worker:
    build: .
    container_name: slack-data-collector-worker-dev
    env_file:
      - .env
    command: uv run celery -A app.celery_app:celery_app worker -l info
    volumes:
      - ./app:/app/app
    depends_on:
      - redis
    restart: unless-stopped

  celery_beat:
    build: .
    container_name: slack-data-collector-beat-dev
    env_file:
      - .env
    command: uv run celery -A app.celery_app:celery_app beat -l info
    volumes:
      - ./app:/app/app
    depends_on:
      - redis
    restart: unless-stopped

  redis:
    image: redis:8-alpine
    container_name: slack-data-collector-redis-dev
    restart: unless-stopped
