Coverage for app / core / config.py: 96%
26 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-21 22:41 +0300
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-21 22:41 +0300
1from pydantic import HttpUrl
2from pydantic_settings import BaseSettings, SettingsConfigDict
5class Settings(BaseSettings):
6 base_url: HttpUrl
8 app_port: int
10 postgres_user: str
11 postgres_password: str
12 postgres_db: str
14 db_host: str
15 db_port: int
16 db_internal_port: int
18 @property
19 def db_url(self) -> str:
20 return (
21 f"postgresql+asyncpg://{self.postgres_user}"
22 f":{self.postgres_password}"
23 f"@{self.db_host}"
24 f":{self.db_internal_port}"
25 f"/{self.postgres_db}"
26 )
28 redis_port: int
29 redis_host: str
30 redis_password: str
32 @property
33 def redis_url(self) -> str:
34 return f"redis://:{self.redis_password}@{self.redis_host}:{self.redis_port}/0"
36 jwt_secret_key: str
37 jwt_algorithm: str = "HS256"
38 jwt_access_expire_minutes: int
40 link_expire_days: int
42 model_config = SettingsConfigDict(case_sensitive=False, env_file=".env")
45settings = Settings()