Files
AutonetSellCar/backend/app/config.py
AutonetSellCar Deploy e661d91c72 fix: banner translations and deployment improvements
- Add translateCarName import from i18n.ts for proper multilingual support
- Change default API language from 'ko' to 'en' for hero banners
- Add checkbox column for Local Cars banner registration
- Update Dockerfile with Playwright dependencies
- Add PostgreSQL migration script
- Add banner translation fix script

🤖 Generated with [Claude Code](https://claude.ai/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-31 10:41:42 +09:00

84 lines
2.6 KiB
Python

from pydantic_settings import BaseSettings
from functools import lru_cache
import os
class Settings(BaseSettings):
# Database - Local SQLite or Remote PostgreSQL
USE_SQLITE: bool = True # Set to False for production PostgreSQL
DB_HOST: str = "192.168.0.201"
DB_PORT: int = 5432
DB_NAME: str = "autonet"
DB_USER: str = "admin"
DB_PASSWORD: str = ""
# Redis
REDIS_HOST: str = "192.168.0.201"
REDIS_PORT: int = 6379
REDIS_PASSWORD: str = ""
# JWT
SECRET_KEY: str = "your-secret-key-for-dev-123"
ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 480 # 8 hours for development
# Agent
AGENT_API_KEY: str = ""
# App
DEBUG: bool = True
# Stripe
STRIPE_SECRET_KEY: str = "" # sk_test_... or sk_live_...
STRIPE_PUBLISHABLE_KEY: str = "" # pk_test_... or pk_live_...
STRIPE_WEBHOOK_SECRET: str = "" # whsec_...
STRIPE_SUCCESS_URL: str = "http://localhost:3000/cc/success"
STRIPE_CANCEL_URL: str = "http://localhost:3000/cc/purchase"
# Azure Translator
AZURE_TRANSLATOR_KEY: str = ""
AZURE_TRANSLATOR_REGION: str = "koreacentral"
# Email Settings (SMTP)
SMTP_HOST: str = "smtp.gmail.com"
SMTP_PORT: int = 587
SMTP_USER: str = ""
SMTP_PASSWORD: str = "" # App password for Gmail
SMTP_FROM_EMAIL: str = ""
SMTP_FROM_NAME: str = "AutonetSellCar"
# SMS Settings (Twilio)
TWILIO_ACCOUNT_SID: str = ""
TWILIO_AUTH_TOKEN: str = ""
TWILIO_PHONE_NUMBER: str = "" # Your Twilio phone number
# Verification Settings
VERIFICATION_CODE_EXPIRE_MINUTES: int = 10
EMAIL_VERIFICATION_REQUIRED: bool = True # Require email verification for signup
PHONE_VERIFICATION_REQUIRED_FOR_CC: bool = True # Require phone for CC charging
@property
def DATABASE_URL(self) -> str:
if self.USE_SQLITE:
# Get the backend directory path
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
db_path = os.path.join(base_dir, "autonet.db")
return f"sqlite:///{db_path}"
# URL-encode password for special characters like @ # etc
from urllib.parse import quote_plus
encoded_password = quote_plus(self.DB_PASSWORD)
return f"postgresql://{self.DB_USER}:{encoded_password}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}"
@property
def REDIS_URL(self) -> str:
return f"redis://:{self.REDIS_PASSWORD}@{self.REDIS_HOST}:{self.REDIS_PORT}/0"
class Config:
env_file = ".env"
@lru_cache()
def get_settings() -> Settings:
"""Get cached settings - updated with SMTP credentials"""
return Settings()