first commit
Some checks failed
Build And Push / publish (push) Failing after 3m15s

This commit is contained in:
2025-09-24 04:11:55 +03:00
commit 967bb8d936
45 changed files with 2651 additions and 0 deletions

62
src/core/config.py Normal file
View File

@ -0,0 +1,62 @@
from os import environ
from os.path import exists
from pydantic import Field, model_validator
from pydantic_extra_types.semantic_version import SemanticVersion
from pydantic_settings import BaseSettings, SettingsConfigDict
def get_version():
if exists('.version'):
with open('.version', encoding='utf-8') as f:
return SemanticVersion.parse(f.read().strip())
return SemanticVersion.parse('0.0.0')
class Settings(BaseSettings):
model_config = SettingsConfigDict(
env_file='.env',
validate_default=False,
extra='ignore',
)
# App info
APP_NAME: str = 'Hospital Assistant API'
APP_DESCRIPTION: str = 'API for the Hospital Assistant'
APP_PORT: int = Field(default=6767)
VERSION: SemanticVersion = Field(default_factory=get_version)
DEBUG: bool = Field(default=False)
# Security
SECRET_KEY: str = Field(default='secret')
ALGORITHM: str = 'HS256'
# Database
DATABASE_URL: str = Field(default='sqlite:///sql.db')
# Redis
REDIS_URL: str = Field(default='redis://localhost:6379/0')
# Loki Logging
LOKI_URL: str | None = Field(default=None)
# Environment
TMK_BASE_URL: str = Field(default='https://tmk-api.tatar.ru/api')
# ESIA
ESIA_BASE_URL: str = Field(default='https://esia.gosuslugi.ru')
ESIA_CLIENT_ID: str = Field(default='')
ESIA_REDIRECT_URI: str = Field(default='')
ESIA_CONTAINER_PASSWORD: str = Field(default='')
ESIA_CONTAINER_THUMBPRINT: str = Field(default='')
@model_validator(mode='after')
def celery_env(self):
environ['CELERY_BROKER_URL'] = self.REDIS_URL
environ['CELERY_RESULT_BACKEND'] = self.REDIS_URL
return self
settings = Settings()