base logic

This commit is contained in:
IluaAir
2025-07-06 11:58:45 +03:00
parent 817a799ef5
commit 4de11f4149
23 changed files with 149 additions and 17 deletions

41
src/core/settings.py Normal file
View File

@@ -0,0 +1,41 @@
from pathlib import Path
from pydantic import BaseModel
from pydantic_settings import BaseSettings, SettingsConfigDict
BASE_DIR = Path(__file__).parent
DB_PATH = BASE_DIR / "db/taskncoffee.db"
class ApiV1Prefix(BaseModel):
prefix: str = "/v1"
auth: str = "/auth"
users: str = "/users"
class ApiPrefix(BaseModel):
prefix: str = "/api"
v1: ApiV1Prefix = ApiV1Prefix()
class DbSettings(BaseModel):
url: str = f"sqlite+aiosqlite:///{DB_PATH}"
class AccessToken(BaseSettings):
model_config = SettingsConfigDict(env_file='.env',
env_file_encoding='utf-8',
env_prefix="ACCESS_TOKEN_"
)
expire_minutes: int = 15
secret_key: str
algorithm: str = "HS256"
class Settings(BaseSettings):
api: ApiPrefix = ApiPrefix()
db: DbSettings = DbSettings()
access_token: AccessToken = AccessToken()
settings = Settings()