Files
bakery-ia/services/distribution/app/core/config.py

43 lines
1.5 KiB
Python
Raw Normal View History

2025-11-30 09:12:40 +01:00
"""
Distribution Service Configuration
"""
from shared.config.base import BaseServiceSettings
from pydantic import Field
from typing import Optional
import os
class Settings(BaseServiceSettings):
"""
Distribution Service specific settings
"""
# Service Identity
APP_NAME: str = "Distribution Service"
SERVICE_NAME: str = "distribution-service"
DESCRIPTION: str = "Distribution and logistics service for enterprise tier bakery management"
VERSION: str = "1.0.0"
# Database Configuration
# Use environment variables with fallbacks for development
DB_HOST: str = os.getenv("DISTRIBUTION_DB_HOST", os.getenv("DB_HOST", "localhost"))
DB_PORT: int = int(os.getenv("DISTRIBUTION_DB_PORT", os.getenv("DB_PORT", "5432")))
DB_USER: str = os.getenv("DISTRIBUTION_DB_USER", os.getenv("DB_USER", "postgres"))
DB_PASSWORD: str = os.getenv("DISTRIBUTION_DB_PASSWORD", os.getenv("DB_PASSWORD", "postgres"))
DB_NAME: str = os.getenv("DISTRIBUTION_DB_NAME", os.getenv("DB_NAME", "distribution_db"))
@property
def DATABASE_URL(self) -> str:
"""Build database URL from components"""
# Try service-specific environment variable first
env_url = os.getenv("DISTRIBUTION_DATABASE_URL") or os.getenv("DATABASE_URL")
if env_url:
return env_url
# Build from components
return f"postgresql+asyncpg://{self.DB_USER}:{self.DB_PASSWORD}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}"
# Create settings instance
settings = Settings()