49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
"""Конфигурация приложения."""
|
|
|
|
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# БД
|
|
DATABASE_URL: str = "postgresql+asyncpg://postgres:postgres@localhost:5432/freelancer_match"
|
|
|
|
# Redis
|
|
REDIS_URL: str = "redis://localhost:6379/0"
|
|
|
|
# JWT
|
|
SECRET_KEY: str = "your-secret-key-change-in-production"
|
|
ACCESS_TOKEN_EXPIRE_MINUTES: int = 15
|
|
REFRESH_TOKEN_EXPIRE_DAYS: int = 7
|
|
|
|
# OpenAI (для AI-матчинга)
|
|
OPENAI_API_KEY: str = ""
|
|
|
|
# OAuth
|
|
GOOGLE_CLIENT_ID: str = ""
|
|
GITHUB_CLIENT_ID: str = ""
|
|
GITHUB_CLIENT_SECRET: str = ""
|
|
|
|
# Stripe (Escrow)
|
|
STRIPE_SECRET_KEY: str = ""
|
|
STRIPE_WEBHOOK_SECRET: str = ""
|
|
|
|
# Email
|
|
SMTP_HOST: str = "smtp.gmail.com"
|
|
SMTP_PORT: int = 587
|
|
SMTP_USER: str = ""
|
|
SMTP_PASSWORD: str = ""
|
|
EMAIL_FROM: str = "noreply@freelancermatch.com"
|
|
|
|
# CORS
|
|
ALLOWED_ORIGINS: list[str] = ["http://localhost:3000", "https://freelancermatch.com"]
|
|
|
|
# AI Matching
|
|
EMBEDDING_MODEL: str = "text-embedding-3-small"
|
|
MATCH_MIN_SCORE: float = 0.7
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
|
|
|
|
settings = Settings()
|