STABLE: Final schema sync, optimized gitignore
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
# /opt/docker/dev/service_finder/backend/app/core/config.py
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Any, Optional
|
||||
from typing import Any, Optional, List
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
from pydantic import Field, field_validator
|
||||
from sqlalchemy import text
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
@@ -16,6 +18,11 @@ class Settings(BaseSettings):
|
||||
API_V1_STR: str = "/api/v1"
|
||||
DEBUG: bool = False
|
||||
|
||||
# MB 2.0 Kompatibilitási alias a database.py számára
|
||||
@property
|
||||
def DEBUG_MODE(self) -> bool:
|
||||
return self.DEBUG
|
||||
|
||||
# --- Security / JWT ---
|
||||
SECRET_KEY: str = "NOT_SET_DANGER"
|
||||
ALGORITHM: str = "HS256"
|
||||
@@ -27,9 +34,21 @@ class Settings(BaseSettings):
|
||||
INITIAL_ADMIN_PASSWORD: str = "Admin123!"
|
||||
|
||||
# --- Database & Cache ---
|
||||
DATABASE_URL: str
|
||||
# Alapértelmezett értéket adunk, hogy ne szálljon el, ha a .env hiányos
|
||||
DATABASE_URL: str = Field(
|
||||
default="postgresql+asyncpg://user:password@postgres-db:5432/service_finder",
|
||||
env="DATABASE_URL"
|
||||
)
|
||||
REDIS_URL: str = "redis://service_finder_redis:6379/0"
|
||||
|
||||
@property
|
||||
def SQLALCHEMY_DATABASE_URI(self) -> str:
|
||||
"""
|
||||
Ez a property biztosítja, hogy a database.py és az Alembic
|
||||
megtalálja a kapcsolatot a várt néven.
|
||||
"""
|
||||
return self.DATABASE_URL
|
||||
|
||||
# --- Email ---
|
||||
EMAIL_PROVIDER: str = "auto"
|
||||
EMAILS_FROM_EMAIL: str = "info@profibot.hu"
|
||||
@@ -43,6 +62,11 @@ class Settings(BaseSettings):
|
||||
|
||||
# --- External URLs ---
|
||||
FRONTEND_BASE_URL: str = "https://dev.profibot.hu"
|
||||
BACKEND_CORS_ORIGINS: List[str] = [
|
||||
"http://localhost:3001",
|
||||
"https://dev.profibot.hu",
|
||||
"http://192.168.100.10:3001"
|
||||
]
|
||||
|
||||
# --- Google OAuth ---
|
||||
GOOGLE_CLIENT_ID: str = ""
|
||||
@@ -53,14 +77,9 @@ class Settings(BaseSettings):
|
||||
LOGIN_RATE_LIMIT_ANON: str = "5/minute"
|
||||
AUTH_MIN_PASSWORD_LENGTH: int = 8
|
||||
|
||||
# --- Dinamikus Admin Motor (Javított) ---
|
||||
# --- Dinamikus Admin Motor (Sértetlenül hagyva) ---
|
||||
async def get_db_setting(self, db: AsyncSession, key_name: str, default: Any = None) -> Any:
|
||||
"""
|
||||
Lekér egy beállítást a data.system_parameters táblából.
|
||||
Ha a tábla még nem létezik (migráció előtt), elkapja a hibát és default-ot ad.
|
||||
"""
|
||||
try:
|
||||
# A lekérdezés a system_parameters táblát és a 'key' mezőt használja
|
||||
query = text("SELECT value FROM data.system_parameters WHERE key = :key")
|
||||
result = await db.execute(query, {"key": key_name})
|
||||
row = result.fetchone()
|
||||
@@ -68,7 +87,6 @@ class Settings(BaseSettings):
|
||||
return row[0]
|
||||
return default
|
||||
except Exception:
|
||||
# Adatbázis hiba vagy hiányzó tábla esetén fallback az alapértelmezett értékre
|
||||
return default
|
||||
|
||||
model_config = SettingsConfigDict(
|
||||
|
||||
Reference in New Issue
Block a user