Pratham200Rajbhar
deployed
a0406a2
Raw
History Blame Contribute Delete
1.44 kB
from pydantic import Field, field_validator
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
model_config = SettingsConfigDict(
env_file=".env",
env_file_encoding="utf-8",
extra="ignore"
)
PROJECT_NAME: str = "Smart Attendance System API"
API_V1_STR: str = "/api/v1"
DATABASE_URL: str = "postgresql://postgres:postgres@localhost:5432/smart_attendance"
JWT_SECRET: str = Field(default="", description="JWT signing secret (must be set via JWT_SECRET env var)")
@field_validator("JWT_SECRET")
@classmethod
def jwt_secret_must_be_set(cls, v: str) -> str:
if not v:
raise ValueError(
"JWT_SECRET environment variable is required. "
"Set it in your .env file for security."
)
return v
JWT_ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 1440
REDIS_URL: str = "redis://localhost:6379/0"
UPLOAD_DIR: str = "static"
FACE_WEIGHT: float = 0.50
LIVENESS_WEIGHT: float = 0.30
BACKGROUND_WEIGHT: float = 0.20
PASS_THRESHOLD: float = 0.75
FRONTEND_URL: str = Field(default="https://smartattandancesystem.vercel.app", description="Frontend URL for CORS")
ENVIRONMENT: str = "development"
LOG_LEVEL: str = Field(default="DEBUG", description="Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL")
settings = Settings()