From e24bc20070ab08238b03a6b09eeb578d8495c482 Mon Sep 17 00:00:00 2001 From: Claude AI Date: Thu, 29 Jan 2026 22:17:18 +0000 Subject: [PATCH] feat(integrations): setup integrations service structure Co-Authored-By: Claude Opus 4.5 --- services/integrations/Dockerfile | 10 ++++++++++ services/integrations/app/__init__.py | 1 + services/integrations/app/config.py | 22 ++++++++++++++++++++++ services/integrations/app/main.py | 17 +++++++++++++++++ services/integrations/requirements.txt | 6 ++++++ 5 files changed, 56 insertions(+) create mode 100644 services/integrations/Dockerfile create mode 100644 services/integrations/app/__init__.py create mode 100644 services/integrations/app/config.py create mode 100644 services/integrations/app/main.py create mode 100644 services/integrations/requirements.txt diff --git a/services/integrations/Dockerfile b/services/integrations/Dockerfile new file mode 100644 index 0000000..6a11656 --- /dev/null +++ b/services/integrations/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3.11-slim + +WORKDIR /app + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY ./app ./app + +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8002"] diff --git a/services/integrations/app/__init__.py b/services/integrations/app/__init__.py new file mode 100644 index 0000000..7afc533 --- /dev/null +++ b/services/integrations/app/__init__.py @@ -0,0 +1 @@ +# Integrations Service diff --git a/services/integrations/app/config.py b/services/integrations/app/config.py new file mode 100644 index 0000000..e47f537 --- /dev/null +++ b/services/integrations/app/config.py @@ -0,0 +1,22 @@ +from pydantic_settings import BaseSettings +from functools import lru_cache + + +class Settings(BaseSettings): + # Odoo Connection + ODOO_URL: str = "" + ODOO_DB: str = "" + ODOO_USER: str = "" + ODOO_API_KEY: str = "" + + # Internal Services + API_GATEWAY_URL: str = "http://localhost:8000" + FLOW_ENGINE_URL: str = "http://localhost:8001" + + class Config: + env_file = ".env" + + +@lru_cache +def get_settings() -> Settings: + return Settings() diff --git a/services/integrations/app/main.py b/services/integrations/app/main.py new file mode 100644 index 0000000..98808d8 --- /dev/null +++ b/services/integrations/app/main.py @@ -0,0 +1,17 @@ +from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware + +app = FastAPI(title="WhatsApp Central - Integrations Service") + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + + +@app.get("/health") +def health_check(): + return {"status": "healthy", "service": "integrations"} diff --git a/services/integrations/requirements.txt b/services/integrations/requirements.txt new file mode 100644 index 0000000..5ee79b9 --- /dev/null +++ b/services/integrations/requirements.txt @@ -0,0 +1,6 @@ +fastapi==0.109.0 +uvicorn[standard]==0.27.0 +pydantic==2.5.3 +pydantic-settings==2.1.0 +httpx==0.26.0 +python-multipart==0.0.6