# services/sales/app/core/config.py """ Sales Service Configuration """ from typing import List from pydantic import Field from shared.config.base import BaseServiceSettings class Settings(BaseServiceSettings): """Sales service settings extending base configuration""" # Override service-specific settings SERVICE_NAME: str = "sales-service" VERSION: str = "1.0.0" APP_NAME: str = "Bakery Sales Service" DESCRIPTION: str = "Sales data management and analytics service" # API Configuration API_V1_STR: str = "/api/v1" # Override database URL to use SALES_DATABASE_URL DATABASE_URL: str = Field( default="postgresql+asyncpg://sales_user:sales_pass123@sales-db:5432/sales_db", env="SALES_DATABASE_URL" ) # Sales-specific Redis database REDIS_DB: int = Field(default=2, env="SALES_REDIS_DB") # File upload configuration MAX_UPLOAD_SIZE: int = 10 * 1024 * 1024 # 10MB UPLOAD_PATH: str = Field(default="/tmp/uploads", env="SALES_UPLOAD_PATH") ALLOWED_FILE_EXTENSIONS: List[str] = [".csv", ".xlsx", ".xls"] # Pagination DEFAULT_PAGE_SIZE: int = 50 MAX_PAGE_SIZE: int = 1000 # Data validation MIN_QUANTITY: float = 0.01 MAX_QUANTITY: float = 10000.0 MIN_REVENUE: float = 0.01 MAX_REVENUE: float = 100000.0 # Sales-specific cache TTL (5 minutes) SALES_CACHE_TTL: int = 300 PRODUCT_CACHE_TTL: int = 600 # 10 minutes # Inter-service communication INVENTORY_SERVICE_URL: str = Field( default="http://inventory-service:8000", env="INVENTORY_SERVICE_URL" ) # Global settings instance settings = Settings()