first
This commit is contained in:
33
config.py
Normal file
33
config.py
Normal file
@ -0,0 +1,33 @@
|
||||
"""Configuration module for loading environment variables."""
|
||||
import os
|
||||
from typing import Optional
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Load environment variables from .env file
|
||||
load_dotenv()
|
||||
|
||||
|
||||
class Config:
|
||||
"""Application configuration."""
|
||||
|
||||
# Telegram Bot Token
|
||||
BOT_TOKEN: Optional[str] = os.getenv("BOT_TOKEN")
|
||||
if not BOT_TOKEN:
|
||||
raise ValueError("BOT_TOKEN environment variable is required")
|
||||
|
||||
# Database configuration
|
||||
DATABASE_URL: Optional[str] = os.getenv("DATABASE_URL")
|
||||
if not DATABASE_URL:
|
||||
raise ValueError("DATABASE_URL environment variable is required")
|
||||
|
||||
# Notification settings
|
||||
NOTIFICATION_TIME: str = os.getenv("NOTIFICATION_TIME", "09:00") or "09:00"
|
||||
TIMEZONE: str = os.getenv("TIMEZONE", "UTC") or "UTC"
|
||||
|
||||
@classmethod
|
||||
def validate(cls) -> None:
|
||||
"""Validate that all required configuration is present."""
|
||||
if not cls.BOT_TOKEN:
|
||||
raise ValueError("BOT_TOKEN is required")
|
||||
if not cls.DATABASE_URL:
|
||||
raise ValueError("DATABASE_URL is required")
|
||||
Reference in New Issue
Block a user