File size: 1,979 Bytes
1ad9865 5be7c9b 973406c 5be7c9b f70727c 973406c 5be7c9b f70727c 5be7c9b f70727c 5be7c9b f70727c 5be7c9b f70727c 5be7c9b 5078e89 1ad9865 5078e89 8b67814 5be7c9b f70727c 5be7c9b f70727c 5be7c9b 5078e89 973406c 1ad9865 973406c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
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()
|