diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..72932e1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/api/.env diff --git a/api/app/__init__.py b/api/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api/app/core/config.py b/api/app/core/config.py new file mode 100644 index 0000000..11d4a53 --- /dev/null +++ b/api/app/core/config.py @@ -0,0 +1,11 @@ +from pydantic import BaseSettings + + +class Settings(BaseSettings): + DATABASE_URL: str = "postgresql+asyncpg://user:password@localhost:5432/dbname" + + class Config: + env_file = ".env" + + +settings = Settings() diff --git a/api/app/infrastructure/database/models/__init__.py b/api/app/infrastructure/database/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/api/app/infrastructure/database/session.py b/api/app/infrastructure/database/session.py new file mode 100644 index 0000000..57da850 --- /dev/null +++ b/api/app/infrastructure/database/session.py @@ -0,0 +1,13 @@ +from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine +from sqlalchemy.orm import sessionmaker +from app.core.config import settings + +engine = create_async_engine(settings.DATABASE_URL, echo=True) + +async_session_maker = sessionmaker( + bind=engine, class_=AsyncSession, expire_on_commit=False +) + +async def get_db(): + async with async_session_maker() as session: + yield session diff --git a/api/app/main.py b/api/app/main.py new file mode 100644 index 0000000..e69de29