yuvabe / src /core /config.py
Hp137's picture
updated config
8b67814
from typing import Optional
from pydantic import PostgresDsn, computed_field
from pydantic_settings import BaseSettings, SettingsConfigDict
class SMTPConfig(BaseSettings):
server: str
port: int
username: str
password: str
class Settings(BaseSettings):
JWT_ALGORITHM: str
JWT_EXPIRE: int
SECRET_KEY: str
POSTGRES_USER: str
POSTGRES_PASSWORD: str
POSTGRES_HOST: str
POSTGRES_DB: str
APP_NAME: str
ENV: str
DEBUG: bool
PORT: int
EMAIL_SERVER: str
EMAIL_PORT: int
EMAIL_USERNAME: str
EMAIL_PASSWORD: str
FERNET_KEY: str
VERIFICATION_BASE_URL: str
GOOGLE_CLIENT_ID: str
GOOGLE_CLIENT_SECRET: str
GOOGLE_REDIRECT_URI: str
FCM_SERVER_KEY: Optional[str] = None
SICK_LEAVE_LIMIT: int = 10
CASUAL_LEAVE_LIMIT: int = 10
AUTH_BASE: str = "https://accounts.google.com/o/oauth2/v2/auth"
TOKEN_URL: str = "https://oauth2.googleapis.com/token"
GMAIL_SEND_SCOPE: str = "https://www.googleapis.com/auth/gmail.send"
FIREBASE_TYPE: str
FIREBASE_PROJECT_ID: str
FIREBASE_PRIVATE_KEY_ID: str
FIREBASE_PRIVATE_KEY: str
FIREBASE_CLIENT_EMAIL: str
FIREBASE_CLIENT_ID: str
FIREBASE_AUTH_URI: str
FIREBASE_TOKEN_URI: str
FIREBASE_AUTH_PROVIDER_X509_CERT_URL: str
FIREBASE_CLIENT_X509_CERT_URL: str
FIREBASE_UNIVERSE_DOMAIN: str
@computed_field
@property
def DATABASE_URL(self) -> PostgresDsn:
"""Sync DB URL"""
return f"postgresql://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}@{self.POSTGRES_HOST}/{self.POSTGRES_DB}"
@computed_field
@property
def ASYNC_DATABASE_URL(self) -> PostgresDsn:
"""Async DB URL"""
return f"postgresql+asyncpg://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}@{self.POSTGRES_HOST}/{self.POSTGRES_DB}"
model_config = SettingsConfigDict(
env_file=".env", case_sensitive=False, env_file_encoding="utf-8"
)
settings = Settings()