40 lines
934 B
Python
40 lines
934 B
Python
import os
|
|
from typing import Optional
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# Telegram Bot
|
|
BOT_TOKEN: str
|
|
ADMIN_ID: int = 0
|
|
|
|
# AI Service
|
|
GEMINI_API_KEY: str
|
|
|
|
# Database
|
|
MONGO_HOST: str = "mongodb://localhost:27017"
|
|
DB_NAME: str = "my_bot_db"
|
|
|
|
# S3 Storage (Minio)
|
|
MINIO_ENDPOINT: str = "http://localhost:9000"
|
|
MINIO_ACCESS_KEY: str = "minioadmin"
|
|
MINIO_SECRET_KEY: str = "minioadmin"
|
|
MINIO_BUCKET: str = "ai-char"
|
|
|
|
# External API
|
|
EXTERNAL_API_SECRET: Optional[str] = None
|
|
|
|
# JWT Security
|
|
SECRET_KEY: str = "CHANGE_ME_TO_A_SUPER_SECRET_KEY"
|
|
ALGORITHM: str = "HS256"
|
|
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 * 24 * 60 # 30 days
|
|
|
|
model_config = SettingsConfigDict(
|
|
env_file=os.getenv("ENV_FILE", ".env"),
|
|
env_file_encoding="utf-8",
|
|
extra="ignore"
|
|
)
|
|
|
|
|
|
settings = Settings()
|