from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_prefix="GG_", env_file=".env", extra="ignore") env: str = Field(default="development") http_addr: str = Field(default="0.0.0.0:8081") grpc_addr: str = Field(default="0.0.0.0:9091") nats_url: str = Field(default="nats://localhost:4222") stream_name: str = Field(default="GUESTGUARD") consumer_durable: str = Field(default="fraud-engine-access") @property def host(self) -> str: return self.http_addr.split(":", 1)[0] or "0.0.0.0" @property def port(self) -> int: parts = self.http_addr.rsplit(":", 1) if len(parts) == 2 and parts[1].isdigit(): return int(parts[1]) return 8081 def load_settings() -> Settings: return Settings()