Gaurav3134's picture
Upload 43 files
0387a1c verified
from __future__ import annotations
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
"""
Centralized configuration loaded from environment variables.
`.env` is supported for local development.
"""
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
# OpenAI
openai_api_key: str = Field(default="", alias="OPENAI_API_KEY")
openai_model: str = Field(default="gpt-4o-mini", alias="OPENAI_MODEL")
# Email
email_user: str = Field(default="", alias="EMAIL_USER")
email_pass: str = Field(default="", alias="EMAIL_PASS")
imap_server: str = Field(default="", alias="IMAP_SERVER")
imap_port: int = Field(default=993, alias="IMAP_PORT")
imap_folder: str = Field(default="INBOX", alias="IMAP_FOLDER")
smtp_server: str = Field(default="", alias="SMTP_SERVER")
smtp_port: int = Field(default=587, alias="SMTP_PORT")
smtp_use_tls: bool = Field(default=True, alias="SMTP_USE_TLS")
smtp_use_ssl: bool = Field(default=False, alias="SMTP_USE_SSL")
# App
app_host: str = Field(default="127.0.0.1", alias="APP_HOST")
app_port: int = Field(default=8000, alias="APP_PORT")
log_level: str = Field(default="INFO", alias="LOG_LEVEL")
# Storage
sqlite_path: str = Field(default="database/db.sqlite3", alias="SQLITE_PATH")
settings = Settings()